source: trunk/j/build.xml @ 1506

Last change on this file since 1506 was 1506, checked in by piso, 19 years ago

0.18.1

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