source: trunk/j/build.xml @ 279

Last change on this file since 279 was 279, checked in by piso, 21 years ago

j-jar.zip: debug=yes, build.compiler=javac1.4

File size: 11.1 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.2+"/>
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 dir="${topdir}/autom4te.cache"/>
218    <delete file="${topdir}/j"/>
219    <delete file="${topdir}/j.bat"/>
220    <delete file="${basedir}/jpty/jpty"/>
221    <delete file="${basedir}/jpty/jpty.exe"/>
222    <delete file="${basedir}/org/armedbear/j/version"/>
223    <delete file="${basedir}/org/armedbear/j/build"/>
224  </target>
225
226  <!-- Distribution -->
227  <target name="dist" depends="prepare, distdir" if="unix">
228    <tar tarfile="${topdir}/j-${version}.tar" basedir="/tmp">
229      <include name="j-${version}/**"/>
230    </tar>
231    <gzip zipfile="${topdir}/j-${version}.tar.gz" src="${topdir}/j-${version}.tar"/>
232    <delete file="${topdir}/j-${version}.tar"/>
233    <zip zipfile="${topdir}/j-${version}.zip" basedir="/tmp">
234      <include name="j-${version}/**"/>
235    </zip>
236  </target>
237
238  <target name="distdir" depends="prepare" if="unix">
239    <delete dir="${distdir}"/>
240    <mkdir dir="${distdir}"/>
241    <copy todir="${distdir}">
242      <fileset dir="${topdir}">
243        <exclude name="**/*.class"/>
244        <exclude name="**/*.jar"/>
245        <exclude name="**/*.zip"/>
246        <exclude name="**/*.tar"/>
247        <exclude name="**/*.tar.gz"/>
248        <exclude name="src/test/**"/>
249        <exclude name="src/org/armedbear/lisp/**"/>
250        <exclude name="**/Makefile"/>
251        <exclude name="**/config.*"/>
252        <exclude name="**/classes.stamp"/>
253        <exclude name="**/build"/>
254        <exclude name="**/version"/>
255        <exclude name="**/j"/>
256        <exclude name="**/j.bat"/>
257        <exclude name="**/jpty"/>
258        <exclude name="**/ChangeLog"/>
259      </fileset>
260    </copy>
261  </target>
262
263  <target name="bindist" depends="prepare, bindistdir" if="unix">
264    <tar tarfile="${topdir}/j-${version}-binary.tar" basedir="/tmp">
265      <include name="j-${version}/**"/>
266    </tar>
267    <gzip zipfile="${topdir}/j-${version}-binary.tar.gz" src="${topdir}/j-${version}-binary.tar"/>
268    <delete file="${topdir}/j-${version}-binary.tar"/>
269    <zip zipfile="${topdir}/j-${version}-binary.zip" basedir="/tmp">
270      <include name="j-${version}/**"/>
271    </zip>
272  </target>
273
274  <target name="bindistdir" depends="release" if="unix">
275    <delete dir="${distdir}"/>
276    <mkdir dir="${distdir}"/>
277    <copy todir="${distdir}">
278      <fileset dir="${topdir}">
279        <include name="j.jar"/>
280        <include name="COPYING"/>
281        <include name="doc/*.html"/>
282        <include name="doc/*.css"/>
283        <include name="themes/*"/>
284      </fileset>
285    </copy>
286  </target>
287
288  <!-- Build j.jar from scratch without debug information -->
289  <target name="release" depends="prepare, clean">
290    <antcall target="j.jar">
291      <param name="debug" value="no"/>
292      <param name="build.compiler" value="javac1.4"/>
293    </antcall>
294  </target>
295
296  <target name="snapshot" depends="clean, prepare, stamp.snapshot, j.zip, j-jar.zip">
297    <delete file="${basedir}/org/armedbear/j/snapshot"/>
298  </target>
299
300  <target name="j.zip">
301    <delete file="${topdir}/j.zip"/>
302    <zip
303      zipfile="${topdir}/j.zip"
304      basedir="${topdir}"
305      excludes="src/TEST-*.txt, src/org/armedbear/lisp/**, **/*.class, **/*.jar, **/*.zip, src/test/**, **/Makefile.in, **/Makefile,
306        **/configure.in, **/configure, **/config.status, **/config.cache, **/config.log,
307        **/install-sh, **/mkinstalldirs, **/classes.stamp, **/build, **/version,
308        **/j, **/j.bat, **/jpty, **/ChangeLog"
309    />
310  </target>
311
312  <target name="j-jar.zip">
313    <delete file="${topdir}/j-jar.zip"/>
314    <delete file="${topdir}/j.jar"/>
315    <antcall target="j.jar">
316      <param name="debug" value="yes"/>
317      <param name="build.compiler" value="javac1.4"/>
318    </antcall>
319    <zip zipfile="${topdir}/j-jar.zip" basedir="${topdir}" includes="j.jar"/>
320  </target>
321
322</project>
Note: See TracBrowser for help on using the repository browser.