Mercurial > hg > monetdb-java
view build.xml @ 969:0fce9f209457 default tip
Correcting typo
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Thu, 20 Mar 2025 19:41:27 +0100 (12 days ago) |
parents | 203c4cc8d94d |
children |
line wrap: on
line source
<?xml version="1.0"?><!-- vim:set ts=2 sw=2 expandtab: --> <!-- SPDX-License-Identifier: MPL-2.0 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. Copyright 2024, 2025 MonetDB Foundation; Copyright August 2008 - 2023 MonetDB B.V.; Copyright 1997 - July 2008 CWI. --> <!-- Build file to allow ant (http://ant.apache.org/) to be used to build the MonetDB Java packages, such as the JDBC driver. --> <project name="MonetDB_Java_Drivers" default="default" basedir="."> <!-- set global properties for this build --> <property name="srcdir" value="src/main/java" /> <property name="libdir" value="lib" /> <property name="jardir" value="jars" /> <property name="builddir" value="build" /> <property name="docdir" value="doc" /> <property name="jdbc-package" value="org/monetdb/jdbc" /> <property name="mcl-package" value="org/monetdb/mcl" /> <property name="client-package" value="org/monetdb/client" /> <property name="util-package" value="org/monetdb/util" /> <property name="mero-control-package" value="org/monetdb/merovingian" /> <property file="build.local.properties" /> <property file="build.properties" /> <!-- Update: cross-compile for JVM 8 (=1.8), profile compact2 2020-02-12, martin.van.dinther@monetdbsolutions.com --> <property name="jvm.version" value="8" /> <property name="jre.version" value="jre${jvm.version}" /> <property name="javac.flags" value="-source 8" /> <property name="javac.flags" value="-target ${jvm.version}" /> <property name="javac.flags" value="-profile compact2" /> <property name="javac.flags" value="-Xlint" /> <property name="jdbc-jar" value="${jardir}/monetdb-jdbc-${JDBC_MAJOR}.${JDBC_MINOR}.${jre.version}.jar" /> <property name="jdbcclient-jar" value="${jardir}/jdbcclient.${jre.version}.jar" /> <property name="jmonetdb-jar" value="${jardir}/jmonetdb.${jre.version}.jar" /> <property name="mero-control-jar" value="${jardir}/merocontrol.${jre.version}.jar" /> <!-- full target --> <target name="all"> <antcall target="distjdbc" /> <antcall target="distmerocontrol" /> <antcall target="doc" /> </target> <target name="distall"> <antcall target="distjdbc" /> <antcall target="distmerocontrol" /> </target> <target name="default"> <antcall target="distjdbc" /> <antcall target="jar_jmonetdb" /> </target> <target name="distjdbc"> <antcall target="jar_jdbc" /> <antcall target="jar_jdbcclient" /> </target> <target name="distmerocontrol"> <antcall target="jar_mero_control" /> </target> <!-- jar targets --> <target name="jar_jdbc" depends="compile_mcl,compile_jdbc,compile_util,compile_client" unless="uptodate.jdbc-jar"> <echo file="${builddir}/META-INF/services/java.sql.Driver" append="false">org.monetdb.jdbc.MonetDriver</echo> <jar jarfile="${jdbc-jar}"> <fileset dir="${builddir}"> <include name="META-INF/services/java.sql.Driver" /> <include name="${jdbc-package}/**/*.class" /> <include name="${mcl-package}/**/*.class" /> <!-- JdbcClient is now included in the JDBC jar --> <include name="${client-package}/**/*.class" /> <include name="${util-package}/**/*.class" /> </fileset> <manifest> <attribute name="Built-By" value="${user.name}" /> <attribute name="Main-Class" value="org.monetdb.client.JdbcClient" /> </manifest> </jar> </target> <!-- JdbcClient is now included in the JDBC jar but we also provide it by its old name for backward compatibility --> <target name="jar_jdbcclient" depends="jar_jdbc"> <echo message="Copying ${jdbc-jar} to ${jdbcclient-jar}" /> <copy file="${jdbc-jar}" tofile="${jdbcclient-jar}" /> </target> <!-- a convenience jar of MeroControl plus the JMonetDB utility --> <target name="jar_jmonetdb" depends="compile_mcl,compile_util,compile_mero_control,compile_client" unless="uptodate.jmonetdb-jar"> <echo message="Building MeroControl + JmonetDB convenience jar" /> <jar jarfile="${jmonetdb-jar}"> <fileset dir="${builddir}"> <include name="${mero-control-package}/**/*.class" /> <include name="${mcl-package}/**/*.class" /> <include name="${client-package}/JMonetDB.class" /> <include name="${util-package}/**/*.class" /> </fileset> <manifest> <attribute name="Built-By" value="${user.name}" /> <attribute name="Main-Class" value="org.monetdb.client.JMonetDB" /> </manifest> </jar> </target> <target name="jar_mero_control" depends="compile_mcl,compile_mero_control"> <jar jarfile="${mero-control-jar}"> <fileset dir="${builddir}"> <include name="${mero-control-package}/**/*.class" /> </fileset> <manifest> <attribute name="Built-By" value="${user.name}" /> </manifest> </jar> </target> <!-- compile targets --> <target name="compile_jdbc" depends="prepare,driver"> <echo message="Compiling JDBC driver" /> <javac classpath="${srcdir}" destdir="${builddir}" debug="${debug}" optimize="${optimize}" includeantruntime="false" source="${jvm.version}" target="${jvm.version}" > <src path="${srcdir}" /> <include name="${jdbc-package}/**/*.java" /> <include name="${util-package}/FileTransferHandler.java" /> <compilerarg line="${javac.flags}" /> </javac> </target> <target name="compile_mcl" depends="prepare,driver"> <echo message="Compiling MCL" /> <javac classpath="${srcdir}" srcdir="${srcdir}" destdir="${builddir}" debug="${debug}" optimize="${optimize}" includeantruntime="false" source="${jvm.version}" target="${jvm.version}" > <include name="${mcl-package}/**/*.java" /> <compilerarg line="${javac.flags}" /> </javac> </target> <target name="compile_client" depends="prepare"> <echo message="Compiling Clients" /> <javac classpath="${srcdir}" srcdir="${srcdir}" destdir="${builddir}" debug="${debug}" optimize="${optimize}" includeantruntime="false" source="${jvm.version}" target="${jvm.version}" > <include name="${client-package}/**/*.java" /> <compilerarg line="${javac.flags}" /> </javac> </target> <target name="compile_util" depends="prepare"> <echo message="Compiling Utilities" /> <javac classpath="${srcdir}" srcdir="${srcdir}" destdir="${builddir}" debug="${debug}" optimize="${optimize}" includeantruntime="false" source="${jvm.version}" target="${jvm.version}" > <include name="${util-package}/**/*.java" /> <compilerarg line="${javac.flags}" /> </javac> </target> <target name="compile_mero_control" depends="prepare"> <echo message="Compiling Merovingian Control library" /> <javac classpath="${srcdir}" srcdir="${srcdir}" destdir="${builddir}" debug="${debug}" optimize="${optimize}" includeantruntime="false" source="${jvm.version}" target="${jvm.version}" > <include name="${mero-control-package}/**/*.java" /> <compilerarg line="${javac.flags}" /> </javac> </target> <!-- This generates MonetVersion.java from its ".java.in" equivalent. It's required for importing the driver version properties. --> <target name="driver" depends="prepare" unless="uptodate.drivers"> <tstamp> <format property="TODAY" pattern="yyyyMMdd" /> </tstamp> <!-- Some defaults --> <filter token="JDBC_MAJOR" value="${JDBC_MAJOR}" /> <filter token="JDBC_MINOR" value="${JDBC_MINOR}" /> <fail unless="JDBC_MAJOR" message="'JDBC_MAJOR' undefined. Please follow the directions in build.properties."/> <fail unless="JDBC_MINOR" message="'JDBC_MINOR' undefined. Please follow the directions in build.properties."/> <!-- now copy and filter the file --> <copy file="${srcdir}/${jdbc-package}/MonetVersion.java.in" overwrite="true" tofile="${srcdir}/${jdbc-package}/MonetVersion.java" filtering="yes" /> <echo message="Configured build for the ${JDBC_MAJOR}.${JDBC_MINOR} edition driver" /> </target> <!-- Prepares the build directory and sets some variables --> <!-- checks whether regeneration of files is necessary --> <target name="prepare"> <condition property="debug" value="true"> <equals arg1="${enable_debug}" arg2="true" casesensitive="false" trim="true" /> </condition> <condition property="debug" value="false"> <not> <equals arg1="${enable_debug}" arg2="true" casesensitive="false" trim="true" /> </not> </condition> <condition property="optimize" value="true"> <equals arg1="${enable_optimize}" arg2="true" casesensitive="false" trim="true" /> </condition> <condition property="optimize" value="false"> <not> <equals arg1="${enable_optimize}" arg2="true" casesensitive="false" trim="true" /> </not> </condition> <uptodate targetfile="${jdbc-jar}" property="uptodate.jdbc-jar"> <srcfiles dir="${srcdir}"> <include name="META-INF/services/java.sql.Driver" /> <include name="${jdbc-package}/**/*.java" /> <include name="${mcl-package}/**/*.java" /> <include name="${client-package}/**/*.java" /> <include name="${util-package}/**/*.java" /> </srcfiles> </uptodate> <uptodate targetfile="${jmonetdb-jar}" property="uptodate.jmonetdb-jar"> <srcfiles dir="${srcdir}"> <include name="${client-package}/**/*.java" /> <include name="${mero-control-package}/**/*.java" /> <include name="${mcl-package}/**/*.java" /> </srcfiles> </uptodate> <condition property="uptodate.drivers"> <and> <uptodate targetfile="${builddir}/src/${jdbc-package}/MonetVersion.java"> <srcfiles dir="${srcdir}"> <include name="build.properties" /> <include name="build.local.properties" /> <include name="${jdbc-package}/MonetVersion.java.in" /> <include name="${jdbc-package}/**/*.java" /> </srcfiles> </uptodate> </and> </condition> <mkdir dir="${builddir}" /> <mkdir dir="${jardir}" /> <echo message="Debug is ${debug}, optimise is ${optimize}" /> </target> <!-- This target removes the build, jar and doc directories --> <target name="clean"> <delete quiet="true" dir="${builddir}" /> <delete quiet="true" dir="${jardir}" /> <delete quiet="true" dir="${docdir}" /> </target> <!-- documentation target --> <target name="doc" depends="driver"> <javadoc destdir="${docdir}" author="false" version="false" use="true" windowtitle="MonetDB Java APIs"> <fileset dir="${srcdir}" defaultexcludes="yes"> <include name="${jdbc-package}/**/*.java" /> <include name="${mcl-package}/**/*.java" /> <include name="${client-package}/**/*.java" /> <include name="${util-package}/**/*.java" /> <include name="${mero-control-package}/**/*.java" /> </fileset> </javadoc> </target> </project>