Statistics
| Revision:

svn-gvsig-desktop / tags / gvsig_redes-1_0_0-1235 / install / IzPack / src / build.xml @ 44116

History | View | Annotate | Download (38.4 KB)

1 5819 cesar
<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
2
3
<project name="IzPack" default="all" basedir="..">
4
5
<!--
6
  $Id$
7
  build.xml first written by Pierre Dittgen (pierre.dittgen@criltelecom.com)
8
  This file is intended to be used with ant (http://jakarta.apache.org/ant),
9
  a java/xml makefile utility.
10

11
    14.8.2001: (by Pierre Dittgen)
12
  Creation of the build.xml. It only compile all the src files.
13

14
    16.8.2001: (by Pierre Dittgen)
15
  Added creation of compiler.jar, installer.jar and compilation of the
16
  panels.
17

18
    28.8.2001: (by Pierre Dittgen)
19
  Added compile.uninstaller and build.uninstaller targets to create the
20
  uninstaller.jar jar file.
21

22
    02.9.2001: (by Julien Ponge)
23
        Improved compilation options (optimizations, deprecation warnings) and
24
        changed the build dir to src/build. Fixed the compiling/building of the
25
        uninstaller.
26

27
    12.9.2001: (by Julien Ponge)
28
        Added creation/compilation of the frontend and its associated jar file.
29

30
    22.9.2001: (by Julien Ponge)
31
        Small fix in the all target that caused an error if the build dir was
32
        not yet created.
33

34
    14.10.2001: (by Julien Ponge)
35
        Added the XPanel compilation call.
36

37
    12.12.2001: (by Julien Ponge)
38
        Removed the 'clean' dependency for the 'all' target.
39

40
    12.02.2002: (by Julien Ponge)
41
        Moved the 'build' directory out of the src/ scope (usefull for my CVS
42
        files moving scripts).
43
        Added a markup to specify IBM Jikes as the compiler (just comment out to
44
        use another one).
45

46
    21.02.2002: (by Paul Wilkinson)
47
        Added tasks to compiler.compiler and build.compiler to build ant task class.
48

49
    02.03.2002: (by Julien Ponge)
50
        Modified the building of the panels so that the inner classes can be copied
51
        too.
52

53
    18.04.2002: (by Julien Ponge)
54
        Added the new com.izforge.izpack.util & com.izforge.izpack.util.os
55
        packages to the installer.jar build process.
56

57
    19.04.2002: (by Olexij Tkatchenko & Julien Ponge)
58
        Added "dist" target for bootstrapped IzPack package creation.
59

60
    01.06.2002: (by Julien Ponge)
61
        Changed the panels building process in order to enable the ShortcutData
62
        classes to be move in the same directory as the ShortcutPanel classes.
63

64
    15.06.2002: (by Julien Ponge)
65
        Added the ant-generated manifests in the clean target scope.
66

67
    03.07.2002: (by Julien Ponge)
68
        Added a target to generate some javadoc.
69

70
    12.01.2003: (by Julien Ponge)
71
        Separated the installer generation from the dist target so that it is
72
        much cleaner.
73

74
    13.01.2003: (by Julien Ponge)
75
        Enhanced the clean target.
76

77
    27.02.2003: (by Julien Ponge)
78
        Fixed the UserInputPanel building process to include all the required
79
        files.
80

81
    30.04.2003: (by Jonathan Halliday)
82
        Change to panel compilation target, for panel automation
83
        (silent install) support.
84

85
    05.07.2003: (by Julien Ponge)
86
        Added a target to fix the files encoding and cr/lf (fix.crlf).
87

88
    10.09.2003: (by Julien Ponge)
89
        Reformatting, 4 spaces tabs, got rid of residual hard tabs.
90

91
    19.09.2003: (by Julien Ponge)
92
        Added a run.installer target to test an installer.
93

94
    06.12.2003: (by Julien Ponge)
95
        Removed the frontend-related sections.
96

97
    16.12.2003: (by Julien Ponge)
98
        Added the SudoPanel building call.
99

100
    18.02.2004: (by Julien Ponge)
101
        New installer naming scheme (IzPack-install-{version}.jar).
102

103
    29.05.2004: (by Julien Ponge)
104
            New SimpleFinishPanel.
105

106
    30.07.2004: (by Klaus Bartz)
107
        Simple CustomAction stuff added.
108

109
    09.09.2004: (by Klaus Bartz)
110
        Clean up of CustomActions added.
111
        New uninstaller-ext.jar with native helper stuff for native libs
112
           in uninstaller.
113
    14.10.2004: (by Klaus Bartz)
114
            New izevent.jar with the base classes of the custom action stuff
115
              to support creation of custom action jars without IzPack source tree
116
           25.10.2004: (by Klaus Bartz)
117
               "Standard" CustomActions AntActionInstallerListener and
118
                 AntActionUninstallerListener added
119

120
  Mini-HowTo:
121

122
  To compile and package the compiler.jar jar file, type:
123
    ant build.compiler
124

125
  To compile and package the installer.jar jar file, type:
126
    ant build.installer
127

128
  To compile and package the uninstaller.jar jar file, type:
129
    ant build.uninstaller
130

131
  To compile the panels and put them in the bin/panels directory, type:
132
    ant build.panels
133

134
    To compile and package the frontend.jar jar file, type:
135
        ant build.frontend
136

137
  To make all, type:
138
    ant all
139
  or
140
    ant
141
  (this is the default target)
142

143
    To compile and create IzPack distribution package type:
144
    ant dist
145

146
    To delete the classes directory after packaging, just type:
147
    ant clean
148
  -->
149
150
    <!-- Compiler to use put your own here (jikes, modern, gcj, ...) -->
151
    <!--<property name="build.compiler" value="jikes" />-->
152
153
    <!-- Define directories -->
154
    <property file="src/ant.properties"/>
155
    <property name="ver" value="3.7"/>
156
    <property name="rel" value="2"/>
157
158
    <property name="src.dir" value="${basedir}/src/lib"/>
159
    <property name="img.dir" value="${basedir}/src/img"/>
160
    <property name="bin.dir" value="${basedir}/bin"/>
161
    <property name="doc.dir" value="${basedir}/doc"/>
162
163
    <property name="langpacks.subdir" value="langpacks"/>
164
    <property name="langpacks.dir" value="${basedir}/bin/${langpacks.subdir}"/>
165
166
    <property name="build.subdir" value="_build"/>
167
    <property name="build.dir" value="${basedir}/${build.subdir}"/>
168
169
    <property name="dist.subdir" value="_dist"/>
170
    <property name="dist.dir" value="${basedir}/${dist.subdir}"/>
171
    <property name="dist-files.dir" value="${basedir}/src/dist-files"/>
172
173
174
    <!-- Define file paths -->
175
    <property name="compiler.jar" value="${basedir}/lib/compiler.jar"/>
176
    <property name="compiler.manifest" value="${basedir}/src/compiler.manifest"/>
177
    <property name="standalone-compiler.jar" value="${basedir}/lib/standalone-compiler.jar"/>
178
    <property name="standalone-compiler.manifest" value="${basedir}/src/standalone-compiler.manifest"/>
179
    <property name="installer.jar" value="${basedir}/lib/installer.jar"/>
180
    <property name="installer.manifest" value="${basedir}/src/installer.manifest"/>
181
    <property name="uninstaller.jar" value="${basedir}/lib/uninstaller.jar"/>
182
    <property name="uninstaller.manifest" value="${basedir}/src/uninstaller.manifest"/>
183
    <property name="uninstaller-ext.jar" value="${basedir}/lib/uninstaller-ext.jar"/>
184
    <property name="izevent.jar" value="${basedir}/lib/izevent.jar"/>
185
186
    <property name="debug" value="true"/>
187
    <property name="debuglevel" value="lines,vars,source"/>
188
189
    <!-- paths -->
190
    <path id="classpath">
191
        <fileset id="ext.libs" dir="${basedir}/lib">
192
            <include name="ant.jar" />
193
            <include name="jakarta-regexp-1.3.jar" />
194
        </fileset>
195
    </path>
196
197
    <!-- Checking target -->
198
    <target name="check">
199
        <echo message="basedir=${basedir}"/>
200
        <echo message="dist.dir=${dist.dir}"/>
201
        <echo message="build.dir=${build.dir}"/>
202
        <echo message="debug=${debug}"/>
203
    </target>
204
205
    <!-- Creates the classes directory -->
206
    <target name="prepare">
207
        <mkdir dir="${build.dir}"/>
208
        <mkdir dir="${basedir}/lib"/>
209
        <mkdir dir="${dist.dir}"/>
210
        <tstamp/>
211
    </target>
212
213
    <!-- Compiles the compiler src files -->
214
    <target name="compile.compiler" depends="prepare">
215
        <javac srcdir="${src.dir}" destdir="${build.dir}" optimize="on"
216
         source="${source}" deprecation="on" debug="${debug}" debuglevel="${debuglevel}" >
217
            <include name="com/izforge/izpack/*.java"/>
218
            <include name="com/izforge/izpack/compiler/*.java"/>
219
            <include name="com/izforge/izpack/ant/*.java"/>
220
            <include name="com/izforge/izpack/util/Debug.java"/>
221
            <include name="com/izforge/izpack/util/OsConstraint.java"/>
222
            <include name="net/n3/nanoxml/*.java"/>
223
        </javac>
224
        <copy todir="${build.dir}/com/izforge/izpack/ant/langpacks">
225
            <fileset dir="${src.dir}/com/izforge/izpack/ant/langpacks"/>
226
        </copy>
227
    </target>
228
229
    <!-- Package compiler.jar -->
230
    <target name="compiler.manifest">
231
        <manifest file="${compiler.manifest}">
232
            <attribute name="Built-By" value="IzPack"/>
233
            <attribute name="Class-Path" value="ant.jar"/>
234
            <attribute name="Main-Class" value="com.izforge.izpack.compiler.Compiler"/>
235
            <section name="com/izforge/izpack/compiler/">
236
                <attribute name="Specification-Title" value="IzPack compiler"/>
237
                <attribute name="Specification-Version" value="${rel}"/>
238
                <attribute name="Specification-Vendor" value="IzPack."/>
239
                <attribute name="Implementation-Title" value="IzPack compiler"/>
240
                <attribute name="Implementation-Version" value="${ver}"/>
241
                <attribute name="Implementation-Vendor" value="IzPack."/>
242
            </section>
243
        </manifest>
244
    </target>
245
    <target name="build.compiler" depends="compile.compiler, compiler.manifest">
246
        <delete file="${compiler.jar}" verbose="true"/>
247
        <jar jarfile="${compiler.jar}" manifest="${compiler.manifest}">
248
            <fileset dir="${build.dir}">
249
                <include name="com/izforge/izpack/*.class"/>
250
                <include name="com/izforge/izpack/compiler/*.class"/>
251
                <include name="com/izforge/izpack/util/OsConstraint.class"/>
252
                <include name="com/izforge/izpack/util/Debug.class"/>
253
                <include name="com/izforge/izpack/util/*Validator.class"/>
254
                <include name="com/izforge/izpack/util/*Processor.class"/>
255
                <include name="com/izforge/izpack/ant/*.class"/>
256
                <include name="com/izforge/izpack/ant/langpacks/*.properties"/>
257
                <include name="com/izforge/izpack/installer/VariableValueMap.class"/>
258
                <include name="com/izforge/izpack/installer/VariableValueMapImpl.class"/>
259
                <include name="com/izforge/izpack/installer/VariableSubstitutor.class"/>
260
                <include name="com/izforge/izpack/event/CompilerListener.class"/>
261
                <include name="com/izforge/izpack/event/SimpleCompilerListener.class"/>
262
                <include name="net/n3/nanoxml/*.class"/>
263
            </fileset>
264
        </jar>
265
    </target>
266
267
    <!-- Package standalone-compiler.jar -->
268
    <target name="standalone-compiler.manifest">
269
        <manifest file="${standalone-compiler.manifest}">
270
            <attribute name="Built-By" value="IzPack"/>
271
            <attribute name="Class-Path" value="ant.jar"/>
272
            <attribute name="Main-Class" value="com.izforge.izpack.compiler.Compiler"/>
273
            <section name="com/izforge/izpack/standalone-compiler/">
274
                <attribute name="Specification-Title" value="IzPack compiler"/>
275
                <attribute name="Specification-Version" value="${rel}"/>
276
                <attribute name="Specification-Vendor" value="IzPack."/>
277
                <attribute name="Implementation-Title" value="IzPack compiler"/>
278
                <attribute name="Implementation-Version" value="${ver}"/>
279
                <attribute name="Implementation-Vendor" value="IzPack."/>
280
            </section>
281
        </manifest>
282
    </target>
283
    <target name="build.standalone-compiler" depends="compile.compiler, standalone-compiler.manifest, build.installer, build.uninstaller, build.uninstaller-ext, build.panels, build.listener">
284
        <delete file="${standalone-compiler.jar}" verbose="true"/>
285
        <jar jarfile="${standalone-compiler.jar}" manifest="${standalone-compiler.manifest}">
286
            <zipfileset src="${installer.jar}"/>
287
            <zipfileset src="${compiler.jar}"/>
288
            <zipfileset src="lib/ant.jar"/>
289
            <fileset dir="${basedir}">
290
                <include name="bin/langpacks/flags/*"/>
291
                <include name="bin/langpacks/installer/*"/>
292
                <include name="bin/native/izpack/*"/>
293
                <include name="bin/native/3rdparty/*"/>
294
                <include name="bin/panels/*Panel.jar"/>
295
                <include name="bin/customActions/*.jar"/>
296
                <include name="lib/uninstaller.jar"/>
297
                <include name="lib/uninstaller-ext.jar"/>
298
                <include name="lib/installer.jar"/>
299
                <include name="lib/kunststoff.jar"/>
300
                <include name="lib/liquidlnf.jar"/>
301
                <include name="lib/metouia.jar"/>
302
                <include name="lib/looks.jar"/>
303
                <exclude name="**/CVS"/>
304
            </fileset>
305
        </jar>
306
    </target>
307
308
    <!-- Compiles the installer src files -->
309
    <target name="compile.installer" depends="prepare">
310
        <javac srcdir="${src.dir}" classpath="${basedir}/lib/jakarta-regexp-1.3.jar" destdir="${build.dir}" optimize="on"
311
         source="${source}" deprecation="on" debug="${debug}" debuglevel="${debuglevel}">
312
            <include name="com/izforge/izpack/*.java"/>
313
            <include name="com/izforge/izpack/gui/*.java"/>
314
            <include name="com/izforge/izpack/installer/*.java"/>
315
            <include name="com/izforge/izpack/util/*.java"/>
316
            <include name="com/izforge/izpack/util/os/*.java"/>
317
            <include name="net/n3/nanoxml/*.java"/>
318
        </javac>
319
    </target>
320
321
    <!-- Package installer.jar -->
322
    <target name="installer.manifest">
323
        <manifest file="${installer.manifest}">
324
            <attribute name="Built-By" value="IzPack"/>
325
            <attribute name="Class-Path" value=""/>
326
            <attribute name="Main-Class" value="com.izforge.izpack.installer.Installer"/>
327
            <section name="com/izforge/izpack/installer/">
328
                <attribute name="Specification-Title" value="IzPack installer"/>
329
                <attribute name="Specification-Version" value="${rel}"/>
330
                <attribute name="Specification-Vendor" value="IzPack."/>
331
                <attribute name="Implementation-Title" value="IzPack installer"/>
332
                <attribute name="Implementation-Version" value="${ver}"/>
333
                <attribute name="Implementation-Vendor" value="IzPack."/>
334
            </section>
335
        </manifest>
336
    </target>
337
    <target name="build.installer" depends="compile.installer, installer.manifest">
338
        <delete file="${installer.jar}" verbose="true"/>
339
        <jar jarfile="${installer.jar}" manifest="${installer.manifest}">
340
            <fileset dir="${build.dir}">
341
                <include name="com/izforge/izpack/*.class"/>
342
                <include name="com/izforge/izpack/gui/*.class"/>
343
                <include name="com/izforge/izpack/installer/*.class"/>
344
                <include name="com/izforge/izpack/util/*.class"/>
345
                <include name="com/izforge/izpack/util/os/*.class"/>
346
                <include name="net/n3/nanoxml/*.class"/>
347
            </fileset>
348
            <zipfileset src="${basedir}/lib/jakarta-regexp-1.3.jar">
349
                <include name="org/apache/regexp/*.class" />
350
            </zipfileset>
351
            <fileset dir="${src.dir}">
352
                <include name="com/izforge/izpack/installer/*.xml"/>
353
                <include name="com/izforge/izpack/installer/*.properties"/>
354
            </fileset>
355
            <fileset dir="${img.dir}/installer"/>
356
        </jar>
357
    </target>
358
359
    <!-- Compiles the uninstaller src files -->
360
    <target name="compile.uninstaller" depends="prepare">
361
        <javac srcdir="${src.dir}" destdir="${build.dir}" optimize="on"
362
         source="${source}" deprecation="on" debug="${debug}" debuglevel="${debuglevel}">
363
            <include name="com/izforge/izpack/LocaleDatabase.java"/>
364
            <include name="com/izforge/izpack/gui/*.java"/>
365
            <include name="com/izforge/izpack/util/*.java"/>
366
            <include name="com/izforge/izpack/uninstaller/*.java"/>
367
            <exclude name="com/izforge/izpack/gui/IzPackKMetalTheme.java"/>
368
            <include name="net/n3/nanoxml/*.java"/>
369
        </javac>
370
    </target>
371
372
    <!-- Package uninstaller.jar -->
373
    <target name="uninstaller.manifest">
374
        <manifest file="${uninstaller.manifest}">
375
            <attribute name="Built-By" value="IzPack"/>
376
            <attribute name="Class-Path" value=""/>
377
            <attribute name="Main-Class" value="com.izforge.izpack.uninstaller.Uninstaller"/>
378
            <section name="com/izforge/izpack/uninstaller/">
379
                <attribute name="Specification-Title" value="IzPack uninstaller"/>
380
                <attribute name="Specification-Version" value="${rel}"/>
381
                <attribute name="Specification-Vendor" value="IzPack."/>
382
                <attribute name="Implementation-Title" value="IzPack uninstaller"/>
383
                <attribute name="Implementation-Version" value="${ver}"/>
384
                <attribute name="Implementation-Vendor" value="IzPack."/>
385
            </section>
386
        </manifest>
387
    </target>
388
    <target name="build.uninstaller" depends="compile.uninstaller, uninstaller.manifest">
389
        <delete file="${uninstaller.jar}" verbose="true"/>
390
        <jar jarfile="${uninstaller.jar}" manifest="${uninstaller.manifest}">
391
            <fileset dir="${build.dir}">
392
                <include name="com/izforge/izpack/LocaleDatabase.class"/>
393
                <include name="com/izforge/izpack/gui/*.class"/>
394
                <include name="com/izforge/izpack/uninstaller/*.class"/>
395
                <include name="com/izforge/izpack/ExecutableFile.class"/>
396
                <include name="com/izforge/izpack/util/AbstractUI*.class"/>
397
                <include name="com/izforge/izpack/util/FileExecutor*.class"/>
398
                <include name="com/izforge/izpack/util/Console.class"/>
399
                <include name="com/izforge/izpack/util/Debug.class"/>
400
                <include name="com/izforge/izpack/util/Os*.class"/>
401
                <exclude name="com/izforge/izpack/gui/IzPackKMetalTheme.class"/>
402
                <include name="net/n3/nanoxml/*.class"/>
403
            </fileset>
404
            <fileset dir="${img.dir}/uninstaller"/>
405
        </jar>
406
    </target>
407
408
    <!-- Compiles the extended uninstaller src files -->
409
    <target name="compile.uninstaller-ext" depends="prepare">
410
        <javac srcdir="${src.dir}" destdir="${build.dir}" optimize="on"
411
         source="${source}" deprecation="on" debug="${debug}" debuglevel="${debuglevel}">
412
            <include name="com/izforge/izpack/util/os/*.java"/>
413
            <exclude name="com/izforge/izpack/gui/IzPackKMetalTheme.java"/>
414
            <include name="net/n3/nanoxml/*.java"/>
415
        </javac>
416
    </target>
417
    <!-- Package extended uninstaller.jar used if one ore more native libs are
418
         declared for uninstallation -->
419
    <target name="build.uninstaller-ext" depends="compile.uninstaller-ext">
420
        <delete file="${uninstaller-ext.jar}" verbose="true"/>
421
        <jar jarfile="${uninstaller-ext.jar}" >
422
            <fileset dir="${build.dir}">
423
                <include name="com/izforge/izpack/util/Librarian.class"/>
424
                <include name="com/izforge/izpack/util/Housekeeper.class"/>
425
                <include name="com/izforge/izpack/util/TargetFactory.class"/>
426
                <include name="com/izforge/izpack/util/FreeThread.class"/>
427
                <include name="com/izforge/izpack/util/CleanupClient.class"/>
428
                <include name="com/izforge/izpack/util/NativeLibraryClient.class"/>
429
                <!-- Add helper etc. you need for uninstallation -->
430
            </fileset>
431
        </jar>
432
    </target>
433
434
    <!-- Compile a panel -->
435
    <target name="compile.panel">
436
        <echo message="Compiles panel ${panel}"/>
437
        <mkdir dir="${bin.dir}/panels/${panel-dir}"/>
438
        <javac srcdir="${src.dir}"
439
               destdir="${bin.dir}/panels/${panel-dir}"
440
               classpath="${installer.jar}"
441
               optimize="on"
442
               deprecation="on"
443
               debug="${debug}"
444
               source="${source}"
445
               debuglevel="${debuglevel}">
446
            <include name="com/izforge/izpack/panels/${panel}*.java"/>
447
        </javac>
448
    </target>
449
450
    <!-- Make JAR for a panel -->
451
    <target name="compile.panel.finish">
452
        <jar jarfile="${bin.dir}/panels/${panel}.jar">
453
            <fileset dir="${bin.dir}/panels/${panel}">
454
                <include name="**/*.class"/>
455
            </fileset>
456
        </jar>
457
    </target>
458
459
    <!-- convenience: compile simple panel and finish it -->
460
    <target name="compile.panel.simple">
461
        <antcall target="compile.panel">
462
            <param name="panel" value="${panel}"/>
463
            <param name="panel-dir" value="${panel-dir}"/>
464
        </antcall>
465
        <antcall target="compile.panel.finish">
466
            <param name="panel" value="${panel}"/>
467
        </antcall>
468
    </target>
469
470
    <!-- Compile all panels and put them at the right location -->
471
    <target name="build.panels" depends="build.installer">
472
        <antcall target="compile.panel.simple">
473
            <param name="panel" value="FinishPanel"/>
474
            <param name="panel-dir" value="FinishPanel"/>
475
        </antcall>
476
        <antcall target="compile.panel.simple">
477
            <param name="panel" value="HelloPanel"/>
478
            <param name="panel-dir" value="HelloPanel"/>
479
        </antcall>
480
        <antcall target="compile.panel.simple">
481
            <param name="panel" value="InfoPanel"/>
482
            <param name="panel-dir" value="InfoPanel"/>
483
        </antcall>
484
        <antcall target="compile.panel.simple">
485
            <param name="panel" value="InstallPanel"/>
486
            <param name="panel-dir" value="InstallPanel"/>
487
        </antcall>
488
        <antcall target="compile.panel">
489
            <param name="panel" value="InstallPanel"/>
490
            <param name="panel-dir" value="ExtendedInstallPanel"/>
491
        </antcall>
492
        <antcall target="compile.panel">
493
            <param name="panel" value="ExtendedInstallPanel"/>
494
            <param name="panel-dir" value="ExtendedInstallPanel"/>
495
        </antcall>
496
        <antcall target="compile.panel.finish">
497
            <param name="panel" value="ExtendedInstallPanel"/>
498
        </antcall>
499
        <antcall target="compile.panel.simple">
500
            <param name="panel" value="LicencePanel"/>
501
            <param name="panel-dir" value="LicencePanel"/>
502
        </antcall>
503
        <antcall target="compile.panel">
504
            <param name="panel" value="PacksPanelInterface"/>
505
            <param name="panel-dir" value="PacksPanel"/>
506
        </antcall>
507
        <antcall target="compile.panel">
508
            <param name="panel" value="PacksModel"/>
509
            <param name="panel-dir" value="PacksPanel"/>
510
        </antcall>
511
        <antcall target="compile.panel">
512
            <param name="panel" value="PacksPanelBase"/>
513
            <param name="panel-dir" value="PacksPanel"/>
514
        </antcall>
515
        <antcall target="compile.panel">
516
            <param name="panel" value="PacksPanel"/>
517
            <param name="panel-dir" value="PacksPanel"/>
518
        </antcall>
519
        <antcall target="compile.panel.finish">
520
            <param name="panel" value="PacksPanel"/>
521
        </antcall>
522
        <antcall target="compile.panel">
523
            <param name="panel" value="PacksPanelInterface"/>
524
            <param name="panel-dir" value="ImgPacksPanel"/>
525
        </antcall>
526
        <antcall target="compile.panel">
527
            <param name="panel" value="PacksModel"/>
528
            <param name="panel-dir" value="ImgPacksPanel"/>
529
        </antcall>
530
        <antcall target="compile.panel">
531
            <param name="panel" value="PacksPanelBase"/>
532
            <param name="panel-dir" value="ImgPacksPanel"/>
533
        </antcall>
534
        <antcall target="compile.panel">
535
            <param name="panel" value="ImgPacksPanel"/>
536
            <param name="panel-dir" value="ImgPacksPanel"/>
537
        </antcall>
538
        <antcall target="compile.panel.finish">
539
            <param name="panel" value="ImgPacksPanel"/>
540
        </antcall>
541
        <antcall target="compile.panel.simple">
542
            <param name="panel" value="HTMLLicencePanel"/>
543
            <param name="panel-dir" value="HTMLLicencePanel"/>
544
        </antcall>
545
        <antcall target="compile.panel.simple">
546
            <param name="panel" value="HTMLInfoPanel"/>
547
            <param name="panel-dir" value="HTMLInfoPanel"/>
548
        </antcall>
549
        <antcall target="compile.panel">
550
            <param name="panel" value="TargetPanel"/>
551
            <param name="panel-dir" value="TargetPanel"/>
552
        </antcall>
553
        <antcall target="compile.panel">
554
            <param name="panel" value="PathInputPanel"/>
555
            <param name="panel-dir" value="TargetPanel"/>
556
        </antcall>
557
        <antcall target="compile.panel">
558
            <param name="panel" value="PathSelectionPanel"/>
559
            <param name="panel-dir" value="TargetPanel"/>
560
        </antcall>
561
        <antcall target="compile.panel.finish">
562
            <param name="panel" value="TargetPanel"/>
563
        </antcall>
564
        <antcall target="compile.panel">
565
            <param name="panel" value="JDKPathPanel"/>
566
            <param name="panel-dir" value="JDKPathPanel"/>
567
        </antcall>
568
        <antcall target="compile.panel">
569
            <param name="panel" value="PathInputPanel"/>
570
            <param name="panel-dir" value="JDKPathPanel"/>
571
        </antcall>
572
        <antcall target="compile.panel">
573
            <param name="panel" value="PathSelectionPanel"/>
574
            <param name="panel-dir" value="JDKPathPanel"/>
575
        </antcall>
576
        <antcall target="compile.panel.finish">
577
            <param name="panel" value="JDKPathPanel"/>
578
        </antcall>
579
        <antcall target="compile.panel.simple">
580
            <param name="panel" value="XInfoPanel"/>
581
            <param name="panel-dir" value="XInfoPanel"/>
582
        </antcall>
583
        <antcall target="compile.panel">
584
            <param name="panel" value="ShortcutData"/>
585
            <param name="panel-dir" value="ShortcutPanel"/>
586
        </antcall>
587
        <antcall target="compile.panel">
588
            <param name="panel" value="ShortcutPanel"/>
589
            <param name="panel-dir" value="ShortcutPanel"/>
590
        </antcall>
591
        <antcall target="compile.panel.finish">
592
            <param name="panel" value="ShortcutPanel"/>
593
        </antcall>
594
        <antcall target="compile.panel">
595
            <param name="panel" value="UserInputPanel"/>
596
            <param name="panel-dir" value="UserInputPanel"/>
597
        </antcall>
598
        <antcall target="compile.panel">
599
            <param name="panel" value="RuleTextField"/>
600
            <param name="panel-dir" value="UserInputPanel"/>
601
        </antcall>
602
        <antcall target="compile.panel">
603
            <param name="panel" value="RuleInputField"/>
604
            <param name="panel-dir" value="UserInputPanel"/>
605
        </antcall>
606
        <antcall target="compile.panel">
607
            <param name="panel" value="Validator"/>
608
            <param name="panel-dir" value="UserInputPanel"/>
609
        </antcall>
610
        <antcall target="compile.panel">
611
            <param name="panel" value="Processor"/>
612
            <param name="panel-dir" value="UserInputPanel"/>
613
        </antcall>
614
        <antcall target="compile.panel">
615
            <param name="panel" value="ProcessingClient"/>
616
            <param name="panel-dir" value="UserInputPanel"/>
617
        </antcall>
618
        <antcall target="compile.panel">
619
            <param name="panel" value="PasswordGroup"/>
620
            <param name="panel-dir" value="UserInputPanel"/>
621
        </antcall>
622
        <antcall target="compile.panel.finish">
623
            <param name="panel" value="UserInputPanel"/>
624
        </antcall>
625
        <antcall target="compile.panel.simple">
626
            <param name="panel" value="CompilePanel"/>
627
            <param name="panel-dir" value="CompilePanel"/>
628
        </antcall>
629
        <antcall target="compile.panel.simple">
630
            <param name="panel" value="ProcessPanel"/>
631
            <param name="panel-dir" value="ProcessPanel"/>
632
        </antcall>
633
        <antcall target="compile.panel.simple">
634
            <param name="panel" value="SudoPanel" />
635
            <param name="panel-dir" value="SudoPanel" />
636
        </antcall>
637
            <antcall target="compile.panel.simple">
638
            <param name="panel" value="SimpleFinishPanel"/>
639
            <param name="panel-dir" value="SimpleFinishPanel"/>
640
        </antcall>
641
    </target>
642
643
    <!-- Compiles the base custom action classes which should placed into
644
         izevent.jar  -->
645
    <target name="compile.listener_base" >
646
        <javac srcdir="${src.dir}" destdir="${build.dir}" optimize="on"
647
         source="${source}" deprecation="on" debug="${debug}" debuglevel="${debuglevel}"
648
        classpath="${installer.jar};${compiler.jar}">
649
            <include name="com/izforge/izpack/event/ActionBase.java"/>
650
            <include name="com/izforge/izpack/event/Simple*nstallerListener.java"/>
651
            <include name="com/izforge/izpack/event/InstallerListener.java"/>
652
            <include name="com/izforge/izpack/event/UninstallerListener.java"/>
653
            <include name="com/izforge/izpack/util/IoHelper.java"/>
654
        </javac>
655
    </target>
656
    <!-- Package izevent.jar  -->
657
    <target name="build.listener_base" depends="compile.listener_base">
658
        <delete file="${izevent.jar}" verbose="true"/>
659
        <jar jarfile="${izevent.jar}" >
660
            <fileset dir="${build.dir}">
661
                <include name="com/izforge/izpack/event/*.class"/>
662
                    <include name="com/izforge/izpack/util/IoHelper.class"/>
663
                <exclude name="com/izforge/izpack/event/*Compiler*.class"/>
664
            </fileset>
665
        </jar>
666
    </target>
667
    <!-- Compile a listener -->
668
    <target name="compile.listener" >
669
        <echo message="Compiles listener ${listener}"/>
670
        <mkdir dir="${bin.dir}/customActions/${listener-dir}"/>
671
        <javac srcdir="${src.dir}"
672
               destdir="${bin.dir}/customActions/${listener-dir}"
673
               classpath="${installer.jar};${compiler.jar};${izevent.jar}"
674
               optimize="on"
675
               deprecation="on"
676
               debug="${debug}"
677
               source="${source}"
678
               debuglevel="${debuglevel}">
679
            <include name="${listener-include}/${listener}*.java"/>
680
        </javac>
681
    </target>
682
683
    <!-- Make JAR for a listener -->
684
    <target name="compile.listener.finish">
685
            <unzip src="${izevent.jar}" dest="${bin.dir}/customActions/${listener}" />
686
        <jar jarfile="${bin.dir}/customActions/${listener}.jar">
687
            <fileset dir="${bin.dir}/customActions/${listener}">
688
                <include name="**/*.class"/>
689
                <exclude name="**/*${listener-exclude1}*.class"/>
690
                <exclude name="**/*${listener-exclude2}*.class"/>
691
            </fileset>
692
        </jar>
693
    </target>
694
    <!-- convenience: compile simple listener and finish it -->
695
    <target name="compile.listener.simple">
696
        <antcall target="compile.listener">
697
            <param name="listener" value="${listener}"/>
698
            <param name="listener-dir" value="${listener-dir}"/>
699
            <param name="listener-include" value="${listener-include}"/>
700
        </antcall>
701
        <antcall target="compile.listener.finish">
702
            <param name="listener" value="${listener}"/>
703
            <param name="listener-exclude1" value="${listener-exclude1}"/>
704
            <param name="listener-exclude2" value="${listener-exclude2}"/>
705
        </antcall>
706
    </target>
707
708
    <!-- simple installer listener -->
709
    <target name="compile.installer-listener.simple">
710
        <antcall target="compile.listener.simple">
711
            <param name="listener" value="${listener}"/>
712
            <param name="listener-dir" value="${listener-dir}"/>
713
            <param name="listener-include" value="${listener-include}"/>
714
            <param name="listener-exclude1" value="Uninstaller"/>
715
            <param name="listener-exclude2" value="_NO_MORE_EXCLUDES_"/>
716
        </antcall>
717
    </target>
718
    <!-- simple uninstaller listener -->
719
    <target name="compile.uninstaller-listener.simple">
720
        <antcall target="compile.listener.simple">
721
            <param name="listener" value="${listener}"/>
722
            <param name="listener-dir" value="${listener-dir}"/>
723
            <param name="listener-include" value="${listener-include}"/>
724
            <param name="listener-exclude1" value="Installer"/>
725
            <param name="listener-exclude2" value="_NO_MORE_EXCLUDES_"/>
726
        </antcall>
727
    </target>
728
    <!-- simple compiler listener -->
729
    <target name="compile.compiler-listener.simple">
730
        <antcall target="compile.listener.simple">
731
            <param name="listener" value="${listener}"/>
732
            <param name="listener-dir" value="${listener-dir}"/>
733
            <param name="listener-include" value="${listener-include}"/>
734
            <param name="listener-exclude1" value="Installer"/>
735
            <param name="listener-exclude2" value="Uninstaller"/>
736
        </antcall>
737
    </target>
738
    <!-- Compile all custom actions (listener) and put them at the right location -->
739
     <target name="build.listener" depends="build.compiler,build.installer,build.listener_base">
740
        <antcall target="compile.installer-listener.simple">
741
            <param name="listener" value="AntActionInstallerListener"/>
742
            <param name="listener-dir" value="AntActionInstallerListener"/>
743
            <param name="listener-include" value="com/izforge/izpack/event"/>
744
        </antcall>
745
        <antcall target="compile.uninstaller-listener.simple">
746
            <param name="listener" value="AntActionUninstallerListener"/>
747
            <param name="listener-dir" value="AntActionUninstallerListener"/>
748
            <param name="listener-include" value="com/izforge/izpack/event"/>
749
        </antcall>
750
751
       <!-- CUSTOM ACTION test START
752
        <antcall target="compile.compiler-listener.simple">
753
            <param name="listener" value="ChmodCompilerListener"/>
754
            <param name="listener-dir" value="ChmodCompilerListener"/>
755
            <param name="listener-include" value="com/myCompany/tools/install/listener"/>
756
        </antcall>
757
        <antcall target="compile.installer-listener.simple">
758
            <param name="listener" value="ChmodInstallerListener"/>
759
            <param name="listener-dir" value="ChmodInstallerListener"/>
760
            <param name="listener-include" value="com/myCompany/tools/install/listener"/>
761
        </antcall>
762
        COSTOM ACTION test END -->
763
    </target>
764
765
    <!-- Performs some cleanups -->
766
    <target name="clean">
767
        <echo message="Cleaning-up"/>
768
        <delete includeEmptyDirs="true" quiet="true">
769
            <fileset dir="${build.dir}"/>
770
            <fileset dir="${dist.dir}"/>
771
            <fileset dir="${basedir}/src/">
772
                <include name="*.manifest"/>
773
            </fileset>
774
            <fileset dir="${basedir}/bin/panels/">
775
                <include name="**/*"/>
776
            </fileset>
777
            <fileset dir="${basedir}/bin/customActions/">
778
                <include name="**/*"/>
779
            </fileset>
780
            <fileset dir="${basedir}/lib/">
781
                <include name="compiler.jar"/>
782
                <include name="standalone-compiler.jar"/>
783
                <include name="frontend.jar"/>
784
                <include name="installer.jar"/>
785
                <include name="uninstaller.jar"/>
786
                <include name="uninstaller-ext.jar"/>
787
            </fileset>
788
        </delete>
789
    </target>
790
791
    <!-- Builds all compilation targets -->
792
    <target name="all" depends="build.compiler,build.installer,build.uninstaller,build.uninstaller-ext,build.panels,build.listener,build.standalone-compiler"/>
793
794
    <!-- Builds the Javadoc -->
795
    <target name="build.javadoc" depends="prepare">
796
        <mkdir dir="${build.dir}/javadoc"/>
797
        <javadoc destdir="${build.dir}/javadoc"
798
                 access="private"
799
                 classpathref="classpath">
800
            <packageset dir="${src.dir}">
801
                <exclude name="**/CVS"/>
802
            </packageset>
803
        </javadoc>
804
        <copy todir="${doc.dir}/izpack/javadoc">
805
            <fileset dir="${build.dir}/javadoc">
806
                <include name="**/*"/>
807
            </fileset>
808
        </copy>
809
    </target>
810
811
    <!-- Creates an installer for IzPack -->
812
    <target name="generate.installer">
813
814
        <!-- Allows us to use the IzPack Ant task -->
815
        <taskdef name="izpack" classpath="${basedir}/lib/compiler.jar" classname="com.izforge.izpack.ant.IzPackTask"/>
816
817
        <!-- Copies the files to the dist directory -->
818
        <copy todir="${dist.dir}" includeEmptyDirs="yes">
819
            <fileset dir="${basedir}">
820
                <include name="bin/**"/>
821
                <include name="lib/*.jar"/>
822
                <include name="doc/**"/>
823
                <include name="legal/**"/>
824
                <include name="src/**"/>
825
                <include name="sample/**"/>
826
                <include name="*.txt"/>
827
            </fileset>
828
        </copy>
829
        <copy todir="${dist.dir}/bin" includeEmptyDirs="yes">
830
            <fileset dir="${basedir}">
831
                <include name="langpacks/**"/>
832
            </fileset>
833
        </copy>
834
        <copy todir="${dist.dir}" includeEmptyDirs="yes">
835
            <fileset dir="${dist-files.dir}">
836
                <include name="useNativeLAF"/>
837
                <include name="*.jpg"/>
838
                <include name="*.png"/>
839
                <include name="*.html"/>
840
                <include name="Licence.txt"/>
841
                <include name="IzPack-install.xml"/>
842
                <include name="shortcutSpec.xml"/>
843
             <include name="Unix_shortcutSpec.xml"/>
844
            </fileset>
845
        </copy>
846
        <copy todir="${dist.dir}/bin" includeEmptyDirs="yes" overwrite="yes">
847
            <fileset dir="${dist-files.dir}">
848
                <include name="izpack-fe*"/>
849
                <include name="compile*"/>
850
            </fileset>
851
        </copy>
852
853
        <!-- We call IzPack -->
854
        <echo message="Makes the installer using IzPack" level="verbose"/>
855
        <izpack input="${dist.dir}/IzPack-install.xml"
856
                output="${dist.dir}/IzPack-install-${ver}.${rel}.jar"
857
                installerType="standard" basedir="${dist.dir}"
858
                izPackDir="${dist.dir}/"/>
859
860
    </target>
861
862
    <!--
863
        Fixes CR/LF by applying the Unix convention (\n for endlines).
864
        It also fixes the encoding problems by moving it to UTF-8.
865
    -->
866
    <target name="fix.crlf">
867
        <fixcrlf srcDir="${src.dir}" eol="lf" eof="remove" encoding="UTF-8">
868
            <include name="**/*.java"/>
869
            <include name="**/*.xml"/>
870
            <include name="**/*.properties"/>
871
        </fixcrlf>
872
    </target>
873
874
    <!-- Runs a testing installer. -->
875
    <target name="run.installer">
876
            <java jar="${basedir}/_dist/IzPack-install-${ver}.${rel}.jar" fork="true" />
877
    </target>
878
879
    <!-- Makes everything, from compilation to generating an installer. -->
880
    <target name="dist" depends="all,build.javadoc,generate.installer"/>
881
882
</project>