source: main/trunk/release-kits/shared/core/ant-scripts/create-installer.xml@ 23811

Last change on this file since 23811 was 23811, checked in by sjm84, 13 years ago

Several changes to integrate FLAX release building as an option in the release kits

File size: 10.7 KB
Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<project name="create-installer">
3
4 <target name="create-installer" depends="init">
5
6 <!-- create installer directory -->
7 <mkdir dir="installer/classes"/>
8
9 <!-- insert the installer descriptors -->
10 <copy todir="installer" overwrite="true">
11 <fileset dir="${rk.home}/kits/${rk.name}/installer" includes="antinstall-config.xml,build.xml"/>
12 </copy>
13
14 <!-- insert the language bundle -->
15 <native2ascii
16 implementation="sun"
17 encoding="UTF-8"
18 src="${rk.home}/shared/core/language-strings"
19 dest="${basedir}/installer/classes/resources"/>
20
21 <!-- insert core, rk-specific and os-specific installer classes -->
22 <copy todir="${basedir}/installer/classes" overwrite="true">
23 <fileset dir="${rk.home}/shared/core/installer-classes" erroronmissingdir="false"/>
24 <fileset dir="${rk.home}/kits/${rk.name}/installer-classes" erroronmissingdir="false"/>
25 <fileset dir="${rk.home}/shared/${rk.os}/installer-classes" erroronmissingdir="false"/>
26 </copy>
27
28 <!-- insert the licence -->
29 <copy file="compiled/LICENSE.txt" todir="${basedir}/installer/classes" overwrite="true"/>
30
31 <!-- insert greenstone's ant tasks -->
32 <unjar src="${rk.home}/shared/core/ant-tasks/greenstone/anttasks.jar" dest="installer/classes"/>
33
34 <!-- insert antelope tasks -->
35 <unjar src="${rk.home}/shared/core/ant-tasks/antelope/AntelopeTasks_3.4.2.jar" dest="installer/classes"/>
36
37 <!-- Include lib/crypt.class but only for releasekit2 (rk2) -->
38 <if><bool><equals arg1="${rk.name}" arg2="rk2"/></bool>
39 <unjar src="${rk.home}/shared/core/lib/crypt.jar" dest="${basedir}/installer/classes">
40 <patternset><include name="**/*.class"/></patternset>
41 </unjar>
42 </if>
43
44 <!-- (windows only) -->
45 <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
46 <!-- insert 7za.exe tool -->
47 <copy todir="installer/classes" overwrite="true" file="${rk.home}/shared/windows/7za/7za.exe"/>
48
49 <!-- insert roxes and orangevolt for windows tricks in ant -->
50 <unjar src="${rk.home}/shared/core/ant-tasks/orangevolt/roxes-win32forjava-1.1.1.jar" dest="installer/classes"/>
51 <unjar src="${rk.home}/shared/core/ant-tasks/orangevolt/orangevolt-ant-tasks-1.3.8.jar" dest="installer/classes"/>
52
53 <!-- (linux and mac only) -->
54 <else><if><bool><or><equals arg1="${rk.os}" arg2="linux"/><equals arg1="${rk.os}" arg2="mac"/></or></bool>
55 <!-- insert 7zip ant task -->
56 <unjar src="${rk.home}/shared/core/ant-tasks/7z-ant/7z.jar" dest="installer/classes"/>
57
58 </if></else></if>
59
60 <!-- clean up meta directory -->
61 <delete dir="installer/classes/META-INF"/>
62
63 <!-- calculate the size of: core -->
64 <length property="component.bytesize.core-without-jre" mode="all"><fileset file="${basedir}/components/core.comp"/></length>
65 <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
66 <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.windows-java}" datatype="int"/>
67 <else><if><bool><equals arg1="${rk.os}" arg2="linux"/></bool>
68 <math result="component.bytesize.core" operand1="${component.bytesize.core-without-jre}" operation="+" operand2="${component.bytesize.linux-java}" datatype="int"/>
69 <else>
70 <property name="component.bytesize.core" value="${component.bytesize.core-without-jre}"/>
71 </else></if></else></if>
72 <math result="component.megabytesize.core" operand1="${component.bytesize.core}" operation="/" operand2="1048576" datatype="int"/>
73 <property name="component.size.core" value="${component.megabytesize.core} MB"/>
74
75 <!-- calculate the size of: imagemagick -->
76 <length property="component.bytesize.imagemagick" mode="all"><fileset file="${basedir}/components/imagemagick.comp"/></length>
77 <math result="component.megabytesize.imagemagick" operand1="${component.bytesize.imagemagick}" operation="/" operand2="1048576" datatype="int"/>
78 <property name="component.size.imagemagick" value="${component.megabytesize.imagemagick} MB"/>
79
80 <!-- calculate the size of: ghostscript -->
81 <length property="component.bytesize.ghostscript" mode="all"><fileset file="${basedir}/components/ghostscript.comp"/></length>
82 <math result="component.megabytesize.ghostscript" operand1="${component.bytesize.ghostscript}" operation="/" operand2="1048576" datatype="int"/>
83 <property name="component.size.ghostscript" value="${component.megabytesize.ghostscript} MB"/>
84
85 <!-- calculate the size of: apache httpd -->
86 <length property="component.bytesize.httpd" mode="all"><fileset file="${basedir}/components/apachehttpd.comp"/></length>
87 <math result="component.megabytesize.httpd" operand1="${component.bytesize.httpd}" operation="/" operand2="1048576" datatype="int"/>
88 <property name="component.size.httpd" value="${component.megabytesize.httpd} MB"/>
89
90 <!-- calculate the size of: tomcat -->
91 <length property="component.bytesize.tomcat" mode="all"><fileset file="${basedir}/components/tomcat.comp"/></length>
92 <math result="component.megabytesize.tomcat" operand1="${component.bytesize.tomcat}" operation="/" operand2="1048576" datatype="int"/>
93 <property name="component.size.tomcat" value="${component.megabytesize.tomcat} MB"/>
94
95 <!-- EXT -->
96 <!-- calculate the size of: amp (and put it into the components directory) -->
97 <if><bool><and><equals arg1="${amp.enabled}" arg2="true"/><not><available file="${rk.home}/ext/amp.lzma"/></not></and></bool>
98 <fail>amp.lzma file not found in the release kit ext directory</fail>
99 </if>
100
101 <if><bool><and><equals arg1="${amp.enabled}" arg2="true"/></and></bool>
102 <echo>Copying amp.lzma to compontents directory</echo>
103 <copy file="${rk.home}/ext/amp.lzma" todir="${basedir}/components"/>
104 <property name="component.size.amp" value="257 MB"/>
105 </if>
106 <!-- /EXT -->
107
108 <!-- make the installer descriptors relevant to the current os -->
109 <dcff file="installer/antinstall-config.xml" startTag="&lt;!--\s*if\s*(?!.*${rk.os})[^ ]+\s*--&gt;" endTag="&lt;!--\s*/if\s*--&gt;" />
110 <dcff file="installer/build.xml" startTag="&lt;!--\s*if\s*(?!.*${rk.os})[^ ]+\s*--&gt;" endTag="&lt;!--\s*/if\s*--&gt;" />
111
112 <!-- EXT -->
113 <if><bool><not><equals arg1="${amp.enabled}" arg2="true"/></not></bool>
114
115 <dcff file="installer/antinstall-config.xml" startTag="&lt;!-- start amp --&gt;" endTag="&lt;!-- end amp --&gt;" />
116 <dcff file="installer/build.xml" startTag="&lt;!-- start amp --&gt;" endTag="&lt;!-- end amp --&gt;" />
117 </if>
118 <!-- /EXT -->
119 <!-- put the concrete values of things in the config -->
120 <rsr>
121 <fileset dir="${basedir}/installer" includes="*.xml"/>
122 <job pattern="@version@" replacement="${version}${version-extra}"/>
123 <job pattern="@component.size.core@" replacement="${component.size.core}"/>
124 <job pattern="@component.size.tomcat@" replacement="${component.size.tomcat}"/>
125 <job pattern="@component.size.imagemagick@" replacement="${component.size.imagemagick}"/>
126 <job pattern="@component.size.ghostscript@" replacement="${component.size.ghostscript}"/>
127 <job pattern="@component.size.httpd@" replacement="${component.size.httpd}"/>
128 <job pattern="@java.min.version@" replacement="${java.min.version}"/>
129 <job pattern="@java.extracted@" replacement="${java.extracted}"/>
130 </rsr>
131
132 <!-- If this is a FLAX installer then we need to change a few things -->
133 <if><bool><equals arg1="${forward.install.flax}" arg2="true"/></bool>
134 <dcff file="installer/build.xml" startTag="&lt;!-- NO FLAX START --&gt;" endTag="&lt;!-- NO FLAX END --&gt;" />
135 <else>
136 <dcff file="installer/build.xml" startTag="&lt;!-- FLAX START --&gt;" endTag="&lt;!-- FLAX END --&gt;" />
137 </else>
138 </if>
139
140 <!-- EXT -->
141 <if><bool><equals arg1="${amp.enabled}" arg2="true"/></bool>
142 <rsr>
143 <fileset dir="${basedir}/installer" includes="*.xml"/>
144 <job pattern="@component.size.amp@" replacement="${component.size.amp}"/>
145 </rsr>
146 </if>
147 <!-- /EXT -->
148
149 <!-- put the concrete values of things in the text -->
150 <rsr>
151 <fileset dir="${basedir}/installer/classes/resources" includes="*.properties"/>
152 <job pattern="@version@" replacement="${version}${version-extra}"/>
153 <job pattern="@version.major@" replacement="${version.major}"/>
154 <job pattern="@java.min.version@" replacement="${java.min.version}"/>
155 <job pattern="@bundled.version.imagemagick@" replacement="${bundled.version.imagemagick}"/>
156 <job pattern="@bundled.version.ghostscript@" replacement="${bundled.version.ghostscript}"/>
157 <job pattern="@bundled.version.tomcat@" replacement="${bundled.version.tomcat}"/>
158 <job pattern="@bundled.version.windows-java@" replacement="${bundled.version.windows-java}"/>
159 <job pattern="@bundled.version.linux-java@" replacement="${bundled.version.linux-java}"/>
160 </rsr>
161
162 <!-- now ready to run "compile-*-installer" targets -->
163
164 <antcall target="compile-binary-installer"/>
165
166 </target>
167
168 <target name="compile-binary-installer">
169
170 <!-- strip out lines for the cdrom installer -->
171 <copy file="installer/antinstall-config.xml" tofile="installer/antinstall-config-binary.xml" overwrite="true"/>
172 <dcff file="installer/antinstall-config-binary.xml" startTag=".*&lt;!-- start cdrom --&gt;.*" endTag=".*&lt;!-- end cdrom --&gt;.*" />
173 <copy file="installer/build.xml" tofile="installer/build-binary.xml" overwrite="true"/>
174 <dcff file="installer/build-binary.xml" startTag=".*&lt;!-- start cdrom --&gt;.*" endTag=".*&lt;!-- end cdrom --&gt;.*" />
175
176 <!-- create insaller jar with ant-installer's ant task -->
177 <installer file="installer/Greenstone-${version}${version-extra}-${os.suffix}.jar"
178 compress="true"
179 extractType="NonExtractor"
180 installConfig="installer/antinstall-config-binary.xml"
181 buildFile="installer/build-binary.xml"
182 antInstallLib="${rk.home}/shared/core/ant-installer/lib"
183 antLib="${ant.home}/lib"
184 validateConfig="true"
185 icons="bluecurve">
186
187 <zipfileset dir="installer/classes" includes="**/*" />
188 <zipfileset dir="components" includes="*.lzma"/>
189 </installer>
190
191 </target>
192
193 <target name="compile-cdrom-installer">
194
195 <!-- strip out lines for the binary(web) installer -->
196 <copy file="installer/antinstall-config.xml" tofile="installer/antinstall-config-cdrom.xml"/>
197 <dcff file="installer/antinstall-config-cdrom.xml" startTag=".*&lt;!-- start web --&gt;.*" endTag=".*&lt;!-- end web --&gt;.*" />
198 <copy file="installer/build.xml" tofile="installer/build-cdrom.xml"/>
199 <dcff file="installer/build-cdrom.xml" startTag=".*&lt;!-- start web --&gt;.*" endTag=".*&lt;!-- end web --&gt;.*" />
200
201 <installer file="installer/cdrom.jar"
202 compress="true"
203 extractType="NonExtractor"
204 installConfig="installer/antinstall-config-cdrom.xml"
205 buildFile="installer/build-cdrom.xml"
206 antInstallLib="${rk.home}/shared/core/ant-installer/lib"
207 antLib="${ant.home}/lib"
208 validateConfig="true"
209 icons="bluecurve">
210
211 <zipfileset dir="installer/classes" includes="**/*" />
212 </installer>
213
214 </target>
215
216</project>
Note: See TracBrowser for help on using the repository browser.