source: trunk/j/build.xml @ 4927

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

LISP_HOME, Site.java

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