source: trunk/j/build.xml @ 4974

Last change on this file since 4974 was 4974, checked in by piso, 18 years ago

0.20.2.6

File size: 11.6 KB
Line 
1<project name="j" default="compile" basedir="./src">
2
3  <!-- Set global properties for this build -->
4  <property name="version" value="0.20.2.6"/>
5  <property name="topdir" value="${basedir}/.."/>
6  <property name="distdir" value="/tmp/j-${version}"/>
7  <property file="${topdir}/build.properties"/>
8  <property name="java" value="${jdk}/jre/bin/java"/>
9  <property name="java_options" value=""/>
10  <property name="extensions" value=""/>
11  <property name="junit" value=""/>
12  <property name="datadir" value="/usr/local/share"/>
13  <property name="bindir" value="/usr/local/bin"/>
14
15  <property name="JAVA" value="${java}"/>
16  <property name="JAVA_OPTIONS" value="${java_options}"/>
17
18  <property name="LISP_HOME" value="${basedir}/org/armedbear/lisp"/>
19
20  <property name="debug" value="no"/>
21
22  <path id="classpath">
23    <pathelement location="${basedir}"/>
24    <pathelement location="${datadir}/j/j.jar"/>
25    <pathelement path="${extensions}"/>
26    <pathelement path="${jdk}/lib/tools.jar"/>
27  </path>
28
29  <property name="CLASSPATH" refid="classpath"/>
30
31  <target name="prepare">
32    <!-- Create the time stamp -->
33    <tstamp>
34      <format property="build" pattern="EEE MMM dd yyyy HH:mm:ss zzz"/>
35    </tstamp>
36    <condition property="unix">
37      <os family="unix"/>
38    </condition>
39    <condition property="windows">
40      <os family="windows"/>
41    </condition>
42    <available
43      classname="com.sun.jdi.Bootstrap"
44      classpath="${jdk}/jre/lib/rt.jar:${extensions}:${jdk}/lib/tools.jar"
45      property="jpda.present"
46    />
47    <available file="org/armedbear/lisp/Interpreter.java" property="lisp.present"/>
48    <filter token="LISP_HOME" value="${LISP_HOME}"/>
49    <copy file="${LISP_HOME}/Site.java.in" tofile="${LISP_HOME}/Site.java" filtering="yes" overwrite="yes"/>
50  </target>
51
52  <target
53    name="compile"
54    depends="classes, classes14, jdbclasses, lispclasses, stamp, stamp.hostname"
55  />
56
57  <target name="lisp" depends="lispclasses"/>
58
59  <target name="classes" depends="prepare">
60    <echo message="debug=${debug}" />
61    <javac
62      srcdir="."
63      destdir="${basedir}"
64      classpath="${basedir}:${jdk}/jre/lib/rt.jar:${extensions}"
65      includeAntRuntime="no"
66      excludes="org/armedbear/lisp/**/*, org/armedbear/j/jdb/**/*, org/armedbear/j/MouseWheelListener.java, org/armedbear/j/WindowStateListener.java"
67      debug="${debug}"
68    />
69  </target>
70
71  <target name="classes14" depends="prepare" if="jdk14">
72    <echo message="debug=${debug}" />
73    <javac
74      srcdir="."
75      destdir="${basedir}"
76      classpath="${basedir}:${jdk14}/jre/lib/rt.jar:${extensions}"
77      includeAntRuntime="no"
78      includes="org/armedbear/j/MouseWheelListener.java, org/armedbear/j/WindowStateListener.java"
79      debug="${debug}"
80    />
81  </target>
82
83  <target name="jdbclasses" depends="prepare" if="jpda.present">
84    <echo message="debug=${debug}" />
85    <javac
86      srcdir="."
87      destdir="${basedir}"
88      classpath="${basedir}:${jdk}/jre/lib/rt.jar:${extensions}:${jdk}/lib/tools.jar"
89      includeAntRuntime="no"
90      includes="org/armedbear/j/jdb/*"
91      debug="${debug}"
92    />
93  </target>
94
95  <target name="lispclasses" depends="prepare" if="lisp.present">
96    <echo message="debug=${debug}" />
97    <filter token="LISP_HOME" value="${LISP_HOME}"/>
98    <copy file="${LISP_HOME}/Site.java.in" tofile="${LISP_HOME}/Site.java" filtering="yes" overwrite="yes"/>
99    <javac
100      srcdir="."
101      destdir="${basedir}"
102      classpath="${basedir}:${jdk}/jre/lib/rt.jar:${junit}"
103      includeAntRuntime="no"
104      includes="org/armedbear/lisp/**/*"
105      excludes="org/armedbear/lisp/Test*"
106      debug="${debug}"
107    />
108    <echo message="${build}&#10;" file="${basedir}/org/armedbear/lisp/build"/>
109  </target>
110
111  <target name="stamp">
112    <echo message="${version}&#10;" file="${basedir}/org/armedbear/j/version"/>
113    <echo message="${build}&#10;" file="${basedir}/org/armedbear/j/build"/>
114    <exec executable="hostname" os="Linux" outputproperty="hostname"/>
115  </target>
116
117  <target name="stamp.hostname" if="unix">
118    <exec executable="hostname" outputproperty="hostname"/>
119    <echo message="${hostname}&#10;" file="${basedir}/org/armedbear/j/build" append="yes"/>
120  </target>
121
122  <!-- FIXME If snapshots have version numbers, we don't need this any more. -->
123  <target name="stamp.snapshot">
124    <echo message="${build}&#10;" file="${basedir}/org/armedbear/j/snapshot"/>
125  </target>
126
127  <target name="all" depends="all.unix, all.windows"/>
128
129  <target name="all.unix" depends="j.jar, jpty" if="unix">
130    <filter token="JAVA" value="${JAVA}"/>
131    <filter token="JAVA_OPTIONS" value="${JAVA_OPTIONS}"/>
132    <filter token="CLASSPATH" value="${CLASSPATH}"/>
133    <copy file="${topdir}/j.in" tofile="${topdir}/j" filtering="yes" overwrite="yes"/>
134    <chmod file="${topdir}/j" perm="ugo+rx"/>
135  </target>
136
137  <target name="all.windows" depends="j.jar, jpty" if="windows">
138    <filter token="JAVA" value="${JAVA}"/>
139    <filter token="JAVA_OPTIONS" value="${JAVA_OPTIONS}"/>
140    <filter token="CLASSPATH" value="${CLASSPATH}"/>
141    <copy file="${topdir}/j.bat.in" tofile="${topdir}/j.bat" filtering="yes" overwrite="yes"/>
142  </target>
143
144  <target name="j.jar" depends="compile">
145    <jar jarfile="../j.jar" manifest="manifest" basedir="${basedir}">
146      <exclude name="pg.class"/>
147      <exclude name="SampleExtension.class"/>
148      <exclude name="org/armedbear/lisp/Tests.class"/>
149      <include name="**/*.class"/>
150      <include name="**/*.keywords"/>
151      <include name="org/armedbear/j/version"/>
152      <include name="org/armedbear/j/build"/>
153      <include name="org/armedbear/j/snapshot"/>
154      <include name="org/armedbear/j/images/*.png"/>
155      <include name="gnu/regexp/MessagesBundle.properties"/>
156      <include name="org/armedbear/lisp/build"/>
157      <include name="org/armedbear/lisp/*.lisp"/>
158    </jar>
159  </target>
160
161  <target name="jpty" if="jpty">
162    <ant antfile="jpty/build.xml"/>
163  </target>
164
165  <!-- Install -->
166  <target name="install" depends="install.unix, install.windows"/>
167
168  <target name="install.unix" depends="all" if="unix">
169    <mkdir dir="${datadir}/j"/>
170    <mkdir dir="${datadir}/j/themes"/>
171    <mkdir dir="${datadir}/doc/j" />
172    <copy file="${topdir}/j.jar" todir="${datadir}/j"/>
173    <copy file="${topdir}/j" todir="${bindir}"/>
174    <chmod file="${bindir}/j" perm="ugo+rx"/>
175    <copy file="${basedir}/jpty/jpty" todir="${bindir}"/>
176    <chmod file="${bindir}/jpty" perm="ugo+rx"/>
177    <copy todir="${datadir}/j/themes">
178      <fileset dir="${topdir}/themes"/>
179    </copy>
180    <copy todir="${datadir}/doc/j">
181      <fileset dir="${topdir}/doc"/>
182    </copy>
183  </target>
184
185  <target name="install.windows" depends="all" if="windows">
186    <mkdir dir="${datadir}/j"/>
187    <mkdir dir="${datadir}/j/themes"/>
188    <mkdir dir="${datadir}/doc/j" />
189    <copy file="${topdir}/j.jar" todir="${datadir}/j"/>
190    <copy file="${topdir}/j.bat" todir="${bindir}"/>
191    <copy file="${basedir}/jpty/jpty.exe" todir="${bindir}"/>
192    <copy todir="${datadir}/j/themes">
193      <fileset dir="${topdir}/themes"/>
194    </copy>
195    <copy todir="${datadir}/doc/j">
196      <fileset dir="${topdir}/doc"/>
197    </copy>
198  </target>
199
200  <!-- Uninstall -->
201  <target name="uninstall">
202    <delete file="${datadir}/j/j.jar" verbose="true"/>
203    <delete file="${bindir}/j" verbose="true"/>
204    <delete file="${bindir}/jpty" verbose="true"/>
205    <delete file="${bindir}/jpty.exe" verbose="true"/>
206    <delete verbose="true">
207      <fileset dir="${datadir}/j/themes"/>
208    </delete>
209    <delete verbose="true">
210      <fileset dir="${datadir}/doc/j"/>
211    </delete>
212  </target>
213
214  <target name="clean">
215    <delete>
216      <fileset dir="${topdir}" includes="**/*.zip"/>
217      <fileset dir="${topdir}" includes="**/*.tar.gz"/>
218      <fileset dir="${topdir}" includes="**/*.jar"/>
219      <fileset dir="${topdir}" includes="**/*.class"/>
220      <fileset dir="${topdir}" includes="**/*~"/>
221      <fileset dir="${topdir}" includes="**/.#*"/>
222      <fileset dir="${topdir}" includes="**/TEST-*.txt"/>
223    </delete>
224    <delete dir="${topdir}/autom4te.cache"/>
225    <delete file="${topdir}/j"/>
226    <delete file="${topdir}/j.bat"/>
227    <delete file="${basedir}/jpty/jpty"/>
228    <delete file="${basedir}/jpty/jpty.exe"/>
229    <delete file="${basedir}/org/armedbear/j/version"/>
230    <delete file="${basedir}/org/armedbear/j/build"/>
231  </target>
232
233  <!-- Distribution -->
234  <target name="dist" depends="prepare, distdir" if="unix">
235    <tar tarfile="${topdir}/j-${version}.tar" basedir="/tmp">
236      <include name="j-${version}/**"/>
237    </tar>
238    <gzip zipfile="${topdir}/j-${version}.tar.gz" src="${topdir}/j-${version}.tar"/>
239    <delete file="${topdir}/j-${version}.tar"/>
240    <zip zipfile="${topdir}/j-${version}.zip" basedir="/tmp">
241      <include name="j-${version}/**"/>
242    </zip>
243  </target>
244
245  <target name="distdir" depends="prepare" if="unix">
246    <delete dir="${distdir}"/>
247    <mkdir dir="${distdir}"/>
248    <copy todir="${distdir}">
249      <fileset dir="${topdir}">
250        <exclude name="**/*.orig"/>
251        <exclude name="**/*.class"/>
252        <exclude name="**/*.jar"/>
253        <exclude name="**/*.zip"/>
254        <exclude name="**/*.tar"/>
255        <exclude name="**/*.tar.gz"/>
256        <exclude name="src/test/**"/>
257        <exclude name="src/org/armedbear/lisp/lisp"/>
258        <exclude name="**/Makefile"/>
259        <exclude name="config.*"/>
260        <exclude name="autom4te.cache/**"/>
261        <exclude name="**/classes.stamp"/>
262        <exclude name="**/build"/>
263        <exclude name="**/version"/>
264        <exclude name="**/j"/>
265        <exclude name="**/j.bat"/>
266        <exclude name="**/jpty"/>
267        <exclude name="**/ChangeLog"/>
268      </fileset>
269    </copy>
270  </target>
271
272  <target name="bindist" depends="prepare, bindistdir" if="unix">
273    <tar tarfile="${topdir}/j-${version}-binary.tar" basedir="/tmp">
274      <include name="j-${version}/**"/>
275    </tar>
276    <gzip zipfile="${topdir}/j-${version}-binary.tar.gz" src="${topdir}/j-${version}-binary.tar"/>
277    <delete file="${topdir}/j-${version}-binary.tar"/>
278    <zip zipfile="${topdir}/j-${version}-binary.zip" basedir="/tmp">
279      <include name="j-${version}/**"/>
280    </zip>
281  </target>
282
283  <target name="bindistdir" depends="release" if="unix">
284    <delete dir="${distdir}"/>
285    <mkdir dir="${distdir}"/>
286    <copy todir="${distdir}">
287      <fileset dir="${topdir}">
288        <include name="j.jar"/>
289        <include name="COPYING"/>
290        <include name="doc/*.html"/>
291        <include name="doc/*.css"/>
292        <include name="themes/*"/>
293        <include name="examples/*"/>
294      </fileset>
295    </copy>
296  </target>
297
298  <!-- Build j.jar from scratch without debug information -->
299  <target name="release" depends="prepare, clean">
300    <antcall target="j.jar">
301      <param name="debug" value="no"/>
302      <param name="build.compiler" value="javac1.4"/>
303    </antcall>
304  </target>
305
306  <target name="snapshot" depends="clean, prepare, stamp.snapshot, j.zip, j-jar.zip">
307    <delete file="${basedir}/org/armedbear/j/snapshot"/>
308  </target>
309
310  <target name="j.zip">
311    <delete file="${topdir}/j.zip"/>
312    <zip
313      zipfile="${topdir}/j.zip"
314      basedir="${topdir}"
315      excludes="src/TEST-*.txt, **/*.orig, **/*.class, **/*.jar, **/*.zip,
316        src/test/**, **/Makefile,
317        config.status, config.cache, config.log, autom4te.cache/**,
318        **/classes.stamp, **/build, **/version,
319        **/j, **/j.bat, **/jpty, **/ChangeLog, src/org/armedbear/lisp/lisp"
320    />
321  </target>
322
323  <target name="j-jar.zip">
324    <delete file="${topdir}/j-jar.zip"/>
325    <delete file="${topdir}/j.jar"/>
326    <antcall target="j.jar">
327      <param name="debug" value="yes"/>
328      <param name="build.compiler" value="javac1.4"/>
329    </antcall>
330    <zip zipfile="${topdir}/j-jar.zip" basedir="${topdir}" includes="j.jar"/>
331  </target>
332
333</project>
Note: See TracBrowser for help on using the repository browser.