Mercurial > hg > monetdb-java
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> |