comparison build.xml @ 0:a5a898f6886c

Copy of MonetDB java directory changeset e6e32756ad31.
author Sjoerd Mullender <sjoerd@acm.org>
date Wed, 21 Sep 2016 09:34:48 +0200 (2016-09-21)
parents
children 073ee535234b b9b35ca2eec2
comparison
equal deleted inserted replaced
-1:000000000000 0:a5a898f6886c
1 <?xml version="1.0"?><!-- vim:set ts=2 sw=2 expandtab: -->
2
3 <!--
4 This Source Code Form is subject to the terms of the Mozilla Public
5 License, v. 2.0. If a copy of the MPL was not distributed with this
6 file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
8 Copyright 1997 - July 2008 CWI, August 2008 - 2016 MonetDB B.V.
9 -->
10
11 <!--
12
13 Build file to allow ant (http://jakarta.apache.org/ant/) to be used
14 to build the MonetDB Java libraries, such as the JDBC and XML:DB
15 drivers.
16
17 -->
18
19 <project name="MonetDB_Java_Drivers" default="default" basedir=".">
20
21
22 <!-- set global properties for this build -->
23 <property name="srcdir" value="src/main/java" />
24 <property name="libdir" value="lib" />
25 <property name="jardir" value="jars" />
26 <property name="builddir" value="build" />
27 <property name="docdir" value="doc" />
28 <property name="jdbc-package" value="nl/cwi/monetdb/jdbc" />
29 <property name="mcl-package" value="nl/cwi/monetdb/mcl" />
30 <property name="client-package" value="nl/cwi/monetdb/client" />
31 <property name="util-package" value="nl/cwi/monetdb/util" />
32 <property name="mero-control-package" value="nl/cwi/monetdb/merovingian" />
33
34 <property file="build.local.properties" />
35 <property file="build.properties" />
36
37 <property name="jdbc-jar"
38 value="${jardir}/monetdb-jdbc-${JDBC_MAJOR}.${JDBC_MINOR}.jar" />
39 <property name="jdbcclient-jar"
40 value="${jardir}/jdbcclient.jar" />
41 <property name="jmonetdb-jar"
42 value="${jardir}/jmonetdb.jar" />
43 <property name="mcl-jar"
44 value="${jardir}/monetdb-mcl-${MCL_MAJOR}.${MCL_MINOR}.jar" />
45
46 <property name="mero-control-jar"
47 value="${jardir}/merocontrol.jar" />
48
49 <!--
50
51 Cross-compile for JVM 1.5 ("Java 5"). This allows the driver to work with older java installations.
52 see also https://blogs.oracle.com/darcy/entry/bootclasspath_older_source for details on the error message w.r.t rt.jar
53 to get around this issue, the -Xlint:-options compiler option has also been addded.
54 2013-04-17, hannes@cwi.nl
55
56 Update: cross-compile for JVM 1.7 since 1.5 and 1.6 are both long
57 since EOL.
58 2015-07-16, sjoerd@acm.org
59
60 -->
61 <property name="jvm.version" value="1.7" />
62 <property name="javac.flags" value="-Xlint:-options" />
63
64 <!-- full target -->
65 <target name="all">
66 <antcall target="distjdbc" />
67
68 <antcall target="distmerocontrol" />
69
70 <antcall target="doc" />
71 </target>
72
73 <target name="distall">
74 <antcall target="distjdbc" />
75 <antcall target="distmerocontrol" />
76 </target>
77
78 <target name="default">
79 <antcall target="jar_jdbcclient" />
80 <antcall target="jar_jmonetdb" />
81 </target>
82
83 <target name="distjdbc">
84 <antcall target="jar_jdbc" />
85 <antcall target="jar_mcl" />
86 <antcall target="jar_jdbcclient" />
87 </target>
88
89 <target name="distmerocontrol">
90 <antcall target="jar_mero_control" />
91 </target>
92
93 <!-- jar targets -->
94 <target name="jar_jdbc" depends="compile_mcl,compile_jdbc"
95 unless="uptodate.jdbc-jar">
96 <echo file="${builddir}/META-INF/services/java.sql.Driver" append="false">nl.cwi.monetdb.jdbc.MonetDriver</echo>
97 <jar jarfile="${jdbc-jar}">
98 <fileset dir="${builddir}">
99 <include name="${jdbc-package}/**/*.class" />
100 <include name="${mcl-package}/**/*.class" />
101 <include name="META-INF/services/java.sql.Driver" />
102 </fileset>
103 </jar>
104 </target>
105
106 <target name="jar_mcl" depends="compile_mcl">
107 <jar jarfile="${mcl-jar}">
108 <fileset dir="${builddir}">
109 <include name="${mcl-package}/**/*.class" />
110 </fileset>
111 </jar>
112 </target>
113
114 <target name="jar_client" depends="compile_util,compile_client">
115 <jar jarfile="${jardir}/monetdb-clients.jar">
116 <fileset dir="${builddir}">
117 <include name="${client-package}/**/*.class" />
118 <include name="${util-package}/**/*.class" />
119 </fileset>
120 </jar>
121 </target>
122
123 <!-- a convenience jar of JDBC plus the JdbcClient utililty -->
124 <target name="jar_jdbcclient"
125 depends="compile_mcl,compile_jdbc,compile_util,compile_client"
126 unless="uptodate.jdbcclient-jar">
127 <echo message="Building JDBC + JdbcClient convenience jar" />
128 <jar jarfile="${jdbcclient-jar}">
129 <fileset dir="${builddir}">
130 <include name="${jdbc-package}/**/*.class" />
131 <include name="${mcl-package}/**/*.class" />
132 <include name="${client-package}/**/*.class" />
133 <include name="${util-package}/**/*.class" />
134 <include name="META-INF/services/java.sql.Driver" />
135 </fileset>
136 <manifest>
137 <attribute name="Built-By" value="${user.name}" />
138 <attribute name="Main-Class" value="nl.cwi.monetdb.client.JdbcClient" />
139 </manifest>
140 </jar>
141 </target>
142
143 <!-- a convenience jar of MeroControl plus the JMonetDB utility -->
144 <target name="jar_jmonetdb"
145 depends="compile_mcl,compile_util,compile_mero_control,compile_client"
146 unless="uptodate.jmonetdb-jar">
147 <echo message="Building MeroControl + JmonetDB convenience jar" />
148 <jar jarfile="${jmonetdb-jar}">
149 <fileset dir="${builddir}">
150 <include name="${mero-control-package}/**/*.class" />
151 <include name="${mcl-package}/**/*.class" />
152 <include name="${client-package}/**/JMonetDB.class" />
153 <include name="${util-package}/**/*.class" />
154 </fileset>
155 <manifest>
156 <attribute name="Built-By" value="${user.name}" />
157 <attribute name="Main-Class" value="nl.cwi.monetdb.client.JMonetDB" />
158 </manifest>
159 </jar>
160 </target>
161
162 <target name="jar_mero_control"
163 depends="compile_mcl,compile_mero_control">
164 <jar jarfile="${mero-control-jar}">
165 <fileset dir="${builddir}">
166 <include name="${mero-control-package}/**/*.class" />
167 </fileset>
168 <manifest>
169 <attribute name="Built-By" value="${user.name}" />
170 </manifest>
171 </jar>
172 </target>
173
174 <!-- compile targets -->
175 <target name="compile_jdbc" depends="prepare,driver">
176 <echo message="Compiling JDBC driver" />
177 <javac
178 classpath="${srcdir}"
179 destdir="${builddir}"
180 debug="${debug}"
181 optimize="${optimize}"
182 includeantruntime="false"
183 source="${jvm.version}"
184 target="${jvm.version}"
185 >
186 <src path="${srcdir}" />
187 <include name="${jdbc-package}/**/*.java" />
188 <compilerarg line="${javac.flags}" />
189 </javac>
190 </target>
191
192 <target name="compile_mcl" depends="prepare">
193 <echo message="Compiling MCL" />
194 <javac
195 classpath="${srcdir}"
196 srcdir="${srcdir}"
197 destdir="${builddir}"
198 debug="${debug}"
199 optimize="${optimize}"
200 includeantruntime="false"
201 source="${jvm.version}"
202 target="${jvm.version}"
203 >
204 <include name="${mcl-package}/**/*.java" />
205 <compilerarg line="${javac.flags}" />
206 </javac>
207 </target>
208
209 <target name="compile_client" depends="prepare">
210 <echo message="Compiling Clients" />
211 <javac
212 classpath="${srcdir}"
213 srcdir="${srcdir}"
214 destdir="${builddir}"
215 debug="${debug}"
216 optimize="${optimize}"
217 includeantruntime="false"
218 source="${jvm.version}"
219 target="${jvm.version}"
220 >
221 <include name="${client-package}/**/*.java" />
222 <compilerarg line="${javac.flags}" />
223 </javac>
224 </target>
225
226 <target name="compile_util" depends="prepare">
227 <echo message="Compiling Utilities" />
228 <javac
229 classpath="${srcdir}"
230 srcdir="${srcdir}"
231 destdir="${builddir}"
232 debug="${debug}"
233 optimize="${optimize}"
234 includeantruntime="false"
235 source="${jvm.version}"
236 target="${jvm.version}"
237 >
238 <include name="${util-package}/**/*.java" />
239 <compilerarg line="${javac.flags}" />
240 </javac>
241 </target>
242
243 <target name="compile_mero_control" depends="prepare">
244 <echo message="Compiling Merovingian Control library" />
245 <javac
246 classpath="${srcdir}"
247 srcdir="${srcdir}"
248 destdir="${builddir}"
249 debug="${debug}"
250 optimize="${optimize}"
251 includeantruntime="false"
252 source="${jvm.version}"
253 target="${jvm.version}"
254 >
255 <include name="${mero-control-package}/**/*.java" />
256 <compilerarg line="${javac.flags}" />
257 </javac>
258 </target>
259
260 <!--
261 This generates MonetDriver.java from its ".java.in" equivalents. It's
262 required for importing the driver version properties.
263 -->
264 <target name="driver" depends="prepare" unless="uptodate.drivers">
265 <tstamp>
266 <format property="TODAY" pattern="yyyyMMdd" />
267 </tstamp>
268
269 <!-- Some defaults -->
270 <filter token="JDBC_MAJOR" value="${JDBC_MAJOR}" />
271 <filter token="JDBC_MINOR" value="${JDBC_MINOR}" />
272 <filter token="MCL_MAJOR" value="${MCL_MAJOR}" />
273 <filter token="MCL_MINOR" value="${MCL_MINOR}" />
274 <filter token="JDBC_DEF_PORT" value="${JDBC_DEF_PORT}" />
275 <filter token="JDBC_VER_SUFFIX" value="${JDBC_VER_SUFFIX} ${TODAY}" />
276
277 <fail unless="JDBC_MAJOR" message="'JDBC_MAJOR' undefined. Please follow the directions in build.properties."/>
278 <fail unless="JDBC_MINOR" message="'JDBC_MINOR' undefined. Please follow the directions in build.properties."/>
279 <fail unless="JDBC_DEF_PORT" message="'JDBC_DEF_PORT' undefined. Please follow the directions in build.properties."/>
280 <fail unless="JDBC_VER_SUFFIX" message="'JDBC_VER_SUFFIX' undefined. Please follow the directions in build.properties."/>
281
282 <!-- now copy and filter the file -->
283 <copy file="${srcdir}/${jdbc-package}/MonetDriver.java.in"
284 overwrite="true"
285 tofile="${srcdir}/${jdbc-package}/MonetDriver.java"
286 filtering="yes" />
287
288 <echo message="Configured build for the ${JDBC_MAJOR}.${JDBC_MINOR} (${JDBC_VER_SUFFIX}) edition driver" />
289 </target>
290
291 <!-- Prepares the build directory and sets some variables -->
292 <!-- checks whether regeneration of files is necessary -->
293 <target name="prepare">
294 <condition property="debug" value="true">
295 <equals arg1="${enable_debug}" arg2="true" casesensitive="false" trim="true" />
296 </condition>
297 <condition property="debug" value="false">
298 <not>
299 <equals arg1="${enable_debug}" arg2="true" casesensitive="false" trim="true" />
300 </not>
301 </condition>
302 <condition property="optimize" value="true">
303 <equals arg1="${enable_optimize}" arg2="true" casesensitive="false" trim="true" />
304 </condition>
305 <condition property="optimize" value="false">
306 <not>
307 <equals arg1="${enable_optimize}" arg2="true" casesensitive="false" trim="true" />
308 </not>
309 </condition>
310
311 <uptodate targetfile="${jdbc-jar}" property="uptodate.jdbc-jar">
312 <srcfiles dir="${srcdir}">
313 <include name="${jdbc-package}/**/*.java" />
314 <include name="${mcl-package}/**/*.java" />
315 </srcfiles>
316 </uptodate>
317 <uptodate targetfile="${jdbcclient-jar}" property="uptodate.jdbcclient-jar">
318 <srcfiles dir="${srcdir}">
319 <include name="${client-package}/**/*.java" />
320 <include name="${jdbc-package}/**/*.java" />
321 <include name="${mcl-package}/**/*.java" />
322 </srcfiles>
323 </uptodate>
324 <uptodate targetfile="${jmonetdb-jar}" property="uptodate.jmonetdb-jar">
325 <srcfiles dir="${srcdir}">
326 <include name="${client-package}/**/*.java" />
327 <include name="${mero-control-package}/**/*.java" />
328 <include name="${mcl-package}/**/*.java" />
329 </srcfiles>
330 </uptodate>
331 <condition property="uptodate.drivers">
332 <and>
333 <uptodate targetfile="${builddir}/src/${jdbc-package}/MonetDriver.java">
334 <srcfiles dir="${srcdir}">
335 <include name="build.properties" />
336 <include name="build.local.properties" />
337 <include name="${jdbc-package}/MonetDriver.java.in" />
338 <include name="${jdbc-package}/**/*.java" />
339 </srcfiles>
340 </uptodate>
341 </and>
342 </condition>
343
344 <mkdir dir="${builddir}" />
345 <mkdir dir="${jardir}" />
346 <echo message="Debug is ${debug}, optimise is ${optimize}" />
347 </target>
348
349 <!-- This target removes the build, jar and doc directories -->
350 <target name="clean">
351 <delete quiet="true" dir="${builddir}" />
352 <delete quiet="true" dir="${jardir}" />
353 <delete quiet="true" dir="${docdir}" />
354 </target>
355
356
357 <!-- documentation target -->
358 <target name="doc"
359 depends="compile_mcl,compile_jdbc,compile_util,compile_client,compile_mero_control">
360 <javadoc
361 destdir="${docdir}"
362 author="true"
363 version="true"
364 use="true"
365 windowtitle="MonetDB Java APIs">
366
367 <fileset dir="${srcdir}" defaultexcludes="yes">
368 <include name="${jdbc-package}/**/*.java" />
369 <include name="${mcl-package}/**/*.java" />
370 <include name="${client-package}/**/*.java" />
371 <include name="${util-package}/**/*.java" />
372 <include name="${mero-control-package}/**/*.java" />
373 </fileset>
374
375 <fileset dir="${builddir}/src" defaultexcludes="yes">
376 <include name="${jdbc-package}/**/*.java" />
377 <include name="${mcl-package}/**/*.java" />
378 <include name="${client-package}/**/*.java" />
379 <include name="${util-package}/**/*.java" />
380 <include name="${mero-control-package}/**/*.java" />
381 </fileset>
382 </javadoc>
383 </target>
384
385 </project>