source: trunk/j/build.xml @ 3801

Last change on this file since 3801 was 3801, checked in by piso, 20 years ago

0.20.1.15+

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.20.1.15+"/>
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="org/armedbear/j/version"/>
146      <include name="org/armedbear/j/build"/>
147      <include name="org/armedbear/j/snapshot"/>
148      <include name="org/armedbear/j/images/*.png"/>
149      <include name="gnu/regexp/MessagesBundle.properties"/>
150      <include name="org/armedbear/lisp/build"/>
151      <include name="org/armedbear/lisp/*.lisp"/>
152    </jar>
153  </target>
154
155  <target name="jpty" if="jpty">
156    <ant antfile="jpty/build.xml"/>
157  </target>
158
159  <!-- Install -->
160  <target name="install" depends="install.unix, install.windows"/>
161
162  <target name="install.unix" depends="all" if="unix">
163    <mkdir dir="${datadir}/j"/>
164    <mkdir dir="${datadir}/j/themes"/>
165    <mkdir dir="${datadir}/doc/j" />
166    <copy file="${topdir}/j.jar" todir="${datadir}/j"/>
167    <copy file="${topdir}/j" todir="${bindir}"/>
168    <chmod file="${bindir}/j" perm="ugo+rx"/>
169    <copy file="${basedir}/jpty/jpty" todir="${bindir}"/>
170    <chmod file="${bindir}/jpty" perm="ugo+rx"/>
171    <copy todir="${datadir}/j/themes">
172      <fileset dir="${topdir}/themes"/>
173    </copy>
174    <copy todir="${datadir}/doc/j">
175      <fileset dir="${topdir}/doc"/>
176    </copy>
177  </target>
178
179  <target name="install.windows" depends="all" if="windows">
180    <mkdir dir="${datadir}/j"/>
181    <mkdir dir="${datadir}/j/themes"/>
182    <mkdir dir="${datadir}/doc/j" />
183    <copy file="${topdir}/j.jar" todir="${datadir}/j"/>
184    <copy file="${topdir}/j.bat" todir="${bindir}"/>
185    <copy file="${basedir}/jpty/jpty.exe" todir="${bindir}"/>
186    <copy todir="${datadir}/j/themes">
187      <fileset dir="${topdir}/themes"/>
188    </copy>
189    <copy todir="${datadir}/doc/j">
190      <fileset dir="${topdir}/doc"/>
191    </copy>
192  </target>
193
194  <!-- Uninstall -->
195  <target name="uninstall">
196    <delete file="${datadir}/j/j.jar" verbose="true"/>
197    <delete file="${bindir}/j" verbose="true"/>
198    <delete file="${bindir}/jpty" verbose="true"/>
199    <delete file="${bindir}/jpty.exe" verbose="true"/>
200    <delete verbose="true">
201      <fileset dir="${datadir}/j/themes"/>
202    </delete>
203    <delete verbose="true">
204      <fileset dir="${datadir}/doc/j"/>
205    </delete>
206  </target>
207
208  <target name="clean">
209    <delete>
210      <fileset dir="${topdir}" includes="**/*.zip"/>
211      <fileset dir="${topdir}" includes="**/*.tar.gz"/>
212      <fileset dir="${topdir}" includes="**/*.jar"/>
213      <fileset dir="${topdir}" includes="**/*.class"/>
214      <fileset dir="${topdir}" includes="**/*~"/>
215      <fileset dir="${topdir}" includes="**/.#*"/>
216      <fileset dir="${topdir}" includes="**/TEST-*.txt"/>
217    </delete>
218    <delete dir="${topdir}/autom4te.cache"/>
219    <delete file="${topdir}/j"/>
220    <delete file="${topdir}/j.bat"/>
221    <delete file="${basedir}/jpty/jpty"/>
222    <delete file="${basedir}/jpty/jpty.exe"/>
223    <delete file="${basedir}/org/armedbear/j/version"/>
224    <delete file="${basedir}/org/armedbear/j/build"/>
225  </target>
226
227  <!-- Distribution -->
228  <target name="dist" depends="prepare, distdir" if="unix">
229    <tar tarfile="${topdir}/j-${version}.tar" basedir="/tmp">
230      <include name="j-${version}/**"/>
231    </tar>
232    <gzip zipfile="${topdir}/j-${version}.tar.gz" src="${topdir}/j-${version}.tar"/>
233    <delete file="${topdir}/j-${version}.tar"/>
234    <zip zipfile="${topdir}/j-${version}.zip" basedir="/tmp">
235      <include name="j-${version}/**"/>
236    </zip>
237  </target>
238
239  <target name="distdir" depends="prepare" if="unix">
240    <delete dir="${distdir}"/>
241    <mkdir dir="${distdir}"/>
242    <copy todir="${distdir}">
243      <fileset dir="${topdir}">
244        <exclude name="**/*.orig"/>
245        <exclude name="**/*.class"/>
246        <exclude name="**/*.jar"/>
247        <exclude name="**/*.zip"/>
248        <exclude name="**/*.tar"/>
249        <exclude name="**/*.tar.gz"/>
250        <exclude name="src/test/**"/>
251        <exclude name="src/org/armedbear/lisp/lisp"/>
252        <exclude name="**/Makefile"/>
253        <exclude name="config.*"/>
254        <exclude name="autom4te.cache/**"/>
255        <exclude name="**/classes.stamp"/>
256        <exclude name="**/build"/>
257        <exclude name="**/version"/>
258        <exclude name="**/j"/>
259        <exclude name="**/j.bat"/>
260        <exclude name="**/jpty"/>
261        <exclude name="**/ChangeLog"/>
262      </fileset>
263    </copy>
264  </target>
265
266  <target name="bindist" depends="prepare, bindistdir" if="unix">
267    <tar tarfile="${topdir}/j-${version}-binary.tar" basedir="/tmp">
268      <include name="j-${version}/**"/>
269    </tar>
270    <gzip zipfile="${topdir}/j-${version}-binary.tar.gz" src="${topdir}/j-${version}-binary.tar"/>
271    <delete file="${topdir}/j-${version}-binary.tar"/>
272    <zip zipfile="${topdir}/j-${version}-binary.zip" basedir="/tmp">
273      <include name="j-${version}/**"/>
274    </zip>
275  </target>
276
277  <target name="bindistdir" depends="release" if="unix">
278    <delete dir="${distdir}"/>
279    <mkdir dir="${distdir}"/>
280    <copy todir="${distdir}">
281      <fileset dir="${topdir}">
282        <include name="j.jar"/>
283        <include name="COPYING"/>
284        <include name="doc/*.html"/>
285        <include name="doc/*.css"/>
286        <include name="themes/*"/>
287        <include name="examples/*"/>
288      </fileset>
289    </copy>
290  </target>
291
292  <!-- Build j.jar from scratch without debug information -->
293  <target name="release" depends="prepare, clean">
294    <antcall target="j.jar">
295      <param name="debug" value="no"/>
296      <param name="build.compiler" value="javac1.4"/>
297    </antcall>
298  </target>
299
300  <target name="snapshot" depends="clean, prepare, stamp.snapshot, j.zip, j-jar.zip">
301    <delete file="${basedir}/org/armedbear/j/snapshot"/>
302  </target>
303
304  <target name="j.zip">
305    <delete file="${topdir}/j.zip"/>
306    <zip
307      zipfile="${topdir}/j.zip"
308      basedir="${topdir}"
309      excludes="src/TEST-*.txt, **/*.orig, **/*.class, **/*.jar, **/*.zip,
310        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.