source: trunk/j/build.xml @ 272

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

j.jar: exclude org/armedbear/j/JLisp*.class

File size: 10.8 KB
Line 
1<project name="j" default="compile" basedir="./src">
2
3  <!-- Set global properties for this build -->
4  <property name="version" value="0.17.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      debug="${debug}"
100    />
101    <echo message="junit=${junit}" />
102    <junit printsummary="yes" haltonfailure="yes">
103      <formatter type="plain" />
104      <classpath>
105        <pathelement path="${basedir}:${jdk}/jre/lib/rt.jar:${junit}" />
106      </classpath>
107      <test name="org.armedbear.lisp.LispTest" />
108    </junit>
109    <echo message="${build}&#10;" file="${basedir}/org/armedbear/lisp/build"/>
110  </target>
111
112  <target name="stamp">
113    <echo message="${version}&#10;" file="${basedir}/org/armedbear/j/version"/>
114    <echo message="${build}&#10;" file="${basedir}/org/armedbear/j/build"/>
115    <exec executable="hostname" os="Linux" outputproperty="hostname"/>
116  </target>
117
118  <target name="stamp.hostname" if="unix">
119    <exec executable="hostname" outputproperty="hostname"/>
120    <echo message="${hostname}&#10;" file="${basedir}/org/armedbear/j/build" append="yes"/>
121  </target>
122
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
146      jarfile="../j.jar"
147      manifest="manifest"
148      basedir="${basedir}"
149      excludes="pg.class, SampleExtension.class, org/armedbear/j/JLisp*.class, org/armedbear/lisp/**/*"
150      includes="**/*.class, **/*.keywords, **/*.bsh, org/armedbear/j/version, org/armedbear/j/build, org/armedbear/j/snapshot, org/armedbear/j/images/*.gif, org/armedbear/j/images/*.png, gnu/regexp/MessagesBundle.properties"
151    />
152  </target>
153
154  <target name="jpty" if="jpty">
155    <ant antfile="jpty/build.xml"/>
156  </target>
157
158  <!-- Install -->
159  <target name="install" depends="install.unix, install.windows"/>
160
161  <target name="install.unix" depends="all" if="unix">
162    <mkdir dir="${datadir}/j"/>
163    <mkdir dir="${datadir}/j/themes"/>
164    <mkdir dir="${datadir}/doc/j" />
165    <copy file="${topdir}/j.jar" todir="${datadir}/j"/>
166    <copy file="${topdir}/j" todir="${bindir}"/>
167    <chmod file="${bindir}/j" perm="ugo+rx"/>
168    <copy file="${basedir}/jpty/jpty" todir="${bindir}"/>
169    <chmod file="${bindir}/jpty" perm="ugo+rx"/>
170    <copy todir="${datadir}/j/themes">
171      <fileset dir="${topdir}/themes"/>
172    </copy>
173    <copy todir="${datadir}/doc/j">
174      <fileset dir="${topdir}/doc"/>
175    </copy>
176  </target>
177
178  <target name="install.windows" depends="all" if="windows">
179    <mkdir dir="${datadir}/j"/>
180    <mkdir dir="${datadir}/j/themes"/>
181    <mkdir dir="${datadir}/doc/j" />
182    <copy file="${topdir}/j.jar" todir="${datadir}/j"/>
183    <copy file="${topdir}/j.bat" todir="${bindir}"/>
184    <copy file="${basedir}/jpty/jpty.exe" todir="${bindir}"/>
185    <copy todir="${datadir}/j/themes">
186      <fileset dir="${topdir}/themes"/>
187    </copy>
188    <copy todir="${datadir}/doc/j">
189      <fileset dir="${topdir}/doc"/>
190    </copy>
191  </target>
192
193  <!-- Uninstall -->
194  <target name="uninstall">
195    <delete file="${datadir}/j/j.jar" verbose="true"/>
196    <delete file="${bindir}/j" verbose="true"/>
197    <delete file="${bindir}/jpty" verbose="true"/>
198    <delete file="${bindir}/jpty.exe" verbose="true"/>
199    <delete verbose="true">
200      <fileset dir="${datadir}/j/themes"/>
201    </delete>
202    <delete verbose="true">
203      <fileset dir="${datadir}/doc/j"/>
204    </delete>
205  </target>
206
207  <target name="clean">
208    <delete>
209      <fileset dir="${topdir}" includes="**/*.zip"/>
210      <fileset dir="${topdir}" includes="**/*.tar.gz"/>
211      <fileset dir="${topdir}" includes="**/*.jar"/>
212      <fileset dir="${topdir}" includes="**/*.class"/>
213      <fileset dir="${topdir}" includes="**/*~"/>
214      <fileset dir="${topdir}" includes="**/.#*"/>
215      <fileset dir="${topdir}" includes="**/TEST-*.txt"/>
216    </delete>
217    <delete file="${topdir}/j"/>
218    <delete file="${topdir}/j.bat"/>
219    <delete file="${basedir}/jpty/jpty"/>
220    <delete file="${basedir}/jpty/jpty.exe"/>
221    <delete file="${basedir}/org/armedbear/j/version"/>
222    <delete file="${basedir}/org/armedbear/j/build"/>
223  </target>
224
225  <!-- Distribution -->
226  <target name="dist" depends="prepare, distdir" if="unix">
227    <tar tarfile="${topdir}/j-${version}.tar" basedir="/tmp">
228      <include name="j-${version}/**"/>
229    </tar>
230    <gzip zipfile="${topdir}/j-${version}.tar.gz" src="${topdir}/j-${version}.tar"/>
231    <delete file="${topdir}/j-${version}.tar"/>
232    <zip zipfile="${topdir}/j-${version}.zip" basedir="/tmp">
233      <include name="j-${version}/**"/>
234    </zip>
235  </target>
236
237  <target name="distdir" depends="prepare" if="unix">
238    <delete dir="${distdir}"/>
239    <mkdir dir="${distdir}"/>
240    <copy todir="${distdir}">
241      <fileset dir="${topdir}">
242        <exclude name="**/*.class"/>
243        <exclude name="**/*.jar"/>
244        <exclude name="**/*.zip"/>
245        <exclude name="**/*.tar"/>
246        <exclude name="**/*.tar.gz"/>
247        <exclude name="src/test/**"/>
248        <exclude name="src/org/armedbear/lisp/**"/>
249        <exclude name="**/Makefile"/>
250        <exclude name="**/config.*"/>
251        <exclude name="**/classes.stamp"/>
252        <exclude name="**/build"/>
253        <exclude name="**/version"/>
254        <exclude name="**/j"/>
255        <exclude name="**/j.bat"/>
256        <exclude name="**/jpty"/>
257        <exclude name="**/ChangeLog"/>
258      </fileset>
259    </copy>
260  </target>
261
262  <target name="bindist" depends="prepare, bindistdir" if="unix">
263    <tar tarfile="${topdir}/j-${version}-binary.tar" basedir="/tmp">
264      <include name="j-${version}/**"/>
265    </tar>
266    <gzip zipfile="${topdir}/j-${version}-binary.tar.gz" src="${topdir}/j-${version}-binary.tar"/>
267    <delete file="${topdir}/j-${version}-binary.tar"/>
268    <zip zipfile="${topdir}/j-${version}-binary.zip" basedir="/tmp">
269      <include name="j-${version}/**"/>
270    </zip>
271  </target>
272
273  <target name="bindistdir" depends="release" if="unix">
274    <delete dir="${distdir}"/>
275    <mkdir dir="${distdir}"/>
276    <copy todir="${distdir}">
277      <fileset dir="${topdir}">
278        <include name="j.jar"/>
279        <include name="COPYING"/>
280        <include name="doc/*.html"/>
281        <include name="doc/*.css"/>
282        <include name="themes/*"/>
283      </fileset>
284    </copy>
285  </target>
286
287  <!-- Build j.jar from scratch without debug information -->
288  <target name="release" depends="prepare, clean">
289    <antcall target="j.jar">
290      <param name="debug" value="no"/>
291    </antcall>
292  </target>
293
294  <target name="snapshot" depends="clean, prepare, stamp.snapshot, j.zip, j-jar.zip">
295    <delete file="${basedir}/org/armedbear/j/snapshot"/>
296  </target>
297
298  <target name="j.zip">
299    <delete file="${topdir}/j.zip"/>
300    <zip
301      zipfile="${topdir}/j.zip"
302      basedir="${topdir}"
303      excludes="src/TEST-*.txt, src/org/armedbear/lisp/**, **/*.class, **/*.jar, **/*.zip, src/test/**, **/Makefile.in, **/Makefile,
304        **/configure.in, **/configure, **/config.status, **/config.cache, **/config.log,
305        **/install-sh, **/mkinstalldirs, **/classes.stamp, **/build, **/version,
306        **/j, **/j.bat, **/jpty, **/ChangeLog"
307    />
308  </target>
309
310  <target name="j-jar.zip" depends="j.jar">
311    <delete file="${topdir}/j-jar.zip"/>
312    <zip zipfile="${topdir}/j-jar.zip" basedir="${topdir}" includes="j.jar"/>
313  </target>
314
315</project>
Note: See TracBrowser for help on using the repository browser.