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