source: trunk/j/build.xml @ 2

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

Initial checkin.

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