mirror of
https://github.com/postgres/postgres.git
synced 2026-03-09 01:31:22 -04:00
363 lines
12 KiB
XML
363 lines
12 KiB
XML
<?xml version="1.0"?>
|
|
<!--
|
|
|
|
Build file to allow ant (http://jakarta.apache.org/ant/) to be used
|
|
to build the PostgreSQL JDBC Driver.
|
|
|
|
This file now requires Ant 1.4.1. 2002-04-18
|
|
|
|
$Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/build.xml,v 1.37 2003/11/03 15:28:26 davec Exp $
|
|
|
|
-->
|
|
|
|
<!DOCTYPE project [
|
|
<!ENTITY jarfiles "postgresql.jar,postgresql-examples.jar">
|
|
]>
|
|
|
|
<project name="postgresqlJDBC" default="all" basedir=".">
|
|
|
|
<!-- set global properties for this build -->
|
|
<property name="srcdir" value="." />
|
|
<property name="jardir" value="jars" />
|
|
<property name="builddir" value="build" />
|
|
<property name="package" value="org/postgresql" />
|
|
<property name="debug" value="on" />
|
|
|
|
<property file="build.properties"/>
|
|
|
|
<!--
|
|
This is a simpler method than utils.CheckVersion
|
|
It defaults to jdbc1, but builds jdbc2 if the java.lang.Byte class is
|
|
in the CLASSPATH (ie JDK1.2 or later), and then enterprise if the
|
|
javax.sql.DataSource class is present.
|
|
|
|
Important: This must have the following order: jdbc1, jdbc2, jdbc3
|
|
-->
|
|
<target name="check_versions">
|
|
<condition property="jdbc1">
|
|
<equals arg1="${ant.java.version}" arg2="1.1"/>
|
|
</condition>
|
|
<condition property="jdbc2">
|
|
<or>
|
|
<equals arg1="${ant.java.version}" arg2="1.2"/>
|
|
<equals arg1="${ant.java.version}" arg2="1.3"/>
|
|
</or>
|
|
</condition>
|
|
<condition property="jdbc3">
|
|
<equals arg1="${ant.java.version}" arg2="1.4"/>
|
|
</condition>
|
|
<available property="datasource" classname="javax.sql.DataSource"/>
|
|
<available property="ssl" classname="javax.net.ssl.SSLSocketFactory"/>
|
|
<available property="junit" classname="junit.framework.Test"/>
|
|
<available property="junit.task" classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"/>
|
|
<condition property="jdbc2tests">
|
|
<and>
|
|
<or>
|
|
<isset property="jdbc2"/>
|
|
<isset property="jdbc3"/>
|
|
</or>
|
|
<isset property="junit"/>
|
|
</and>
|
|
</condition>
|
|
<condition property="jdbc2optionaltests">
|
|
<and>
|
|
<or>
|
|
<isset property="jdbc2"/>
|
|
<isset property="jdbc3"/>
|
|
</or>
|
|
<isset property="datasource"/>
|
|
<isset property="junit"/>
|
|
</and>
|
|
</condition>
|
|
<condition property="jdbc3tests">
|
|
<and>
|
|
<isset property="jdbc3"/>
|
|
<isset property="junit"/>
|
|
</and>
|
|
</condition>
|
|
</target>
|
|
|
|
|
|
<!-- default target -->
|
|
<target name="all">
|
|
<antcall target="jar" />
|
|
</target>
|
|
|
|
|
|
<!-- create the jar file -->
|
|
<target name="jar" depends="compile,examples">
|
|
<jar jarfile="${jardir}/postgresql.jar">
|
|
<fileset dir="${builddir}">
|
|
<include name="${package}/**/*.class" />
|
|
</fileset>
|
|
|
|
<fileset dir="${srcdir}">
|
|
<include name="${package}/*.properties" />
|
|
</fileset>
|
|
</jar>
|
|
|
|
<jar jarfile="${jardir}/postgresql-examples.jar">
|
|
<fileset dir="${builddir}">
|
|
<include name="example/**/*.class" />
|
|
</fileset>
|
|
|
|
<fileset dir="${srcdir}">
|
|
<include name="example/*.properties" />
|
|
</fileset>
|
|
</jar>
|
|
</target>
|
|
|
|
|
|
<target name="compile" depends="prepare,check_versions,driver">
|
|
|
|
<available classname="org.postgresql.Driver" property="old.driver.present" />
|
|
<fail message="Old driver was detected on classpath or in jre/lib/ext, please remove and try again." if="old.driver.present" />
|
|
|
|
<javac classpath="{$srcdir}" srcdir="${srcdir}" destdir="${builddir}" debug="${debug}">
|
|
<!-- This is the core of the driver. It is common for all three versions. -->
|
|
<include name="${package}/*.java" />
|
|
<include name="${package}/core/**" />
|
|
<include name="${package}/fastpath/**" />
|
|
<include name="${package}/geometric/**" />
|
|
<include name="${package}/largeobject/**" />
|
|
<include name="${package}/util/**" />
|
|
|
|
<!--
|
|
Each jdbcN subpackage is used only if the driver supports *at least* that
|
|
revision of JDBC. That is, a JDBC1 build uses only jdbc1, a JDBC2 build
|
|
uses both jdbc1 and jdbc2, etc.
|
|
|
|
Within those subpackages, classes beginning with "JdbcN" are assumed to be
|
|
the concrete implementations for JDBC version N and are built only if the
|
|
driver supports *exactly* that version. For example, jdbc1/Jdbc1Statement.java
|
|
is built only if the driver build is a JDBC1 build.
|
|
-->
|
|
|
|
<!-- jdbc1 subpackage -->
|
|
<include name="${package}/jdbc1/**"/>
|
|
<exclude name="${package}/jdbc1/Jdbc1*.java" unless="jdbc1"/>
|
|
|
|
<!-- jdbc2 subpackage -->
|
|
<include name="${package}/jdbc2/**" if="jdbc2"/>
|
|
<include name="${package}/jdbc2/**" if="jdbc3"/>
|
|
<exclude name="${package}/jdbc2/Jdbc2*.java" unless="jdbc2"/>
|
|
<exclude name="${package}/jdbc2/optional/**" unless="datasource"/>
|
|
|
|
<!-- jdbc3 subpackage -->
|
|
<include name="${package}/jdbc3/*.java" if="jdbc3"/>
|
|
<exclude name="${package}/jdbc3/Jdbc3*.java" unless="jdbc3"/>
|
|
|
|
</javac>
|
|
</target>
|
|
|
|
<target name="check_driver">
|
|
<uptodate targetfile="${package}/Driver.java" property="driver.uptodate">
|
|
<srcfiles dir=".">
|
|
<include name="${package}/Driver.java.in"/>
|
|
<include name="build.properties"/>
|
|
</srcfiles>
|
|
</uptodate>
|
|
</target>
|
|
|
|
<!--
|
|
This generates Driver.java from Driver.java.in
|
|
It's required for importing the driver version properties
|
|
-->
|
|
<target name="driver" depends="prepare,check_versions,check_driver"
|
|
unless="driver.uptodate">
|
|
<!-- determine the edition text -->
|
|
<condition property="edition" value="JDBC1">
|
|
<equals arg1="${jdbc1}" arg2="true"/>
|
|
</condition>
|
|
<condition property="edition" value="JDBC2">
|
|
<equals arg1="${jdbc2}" arg2="true"/>
|
|
</condition>
|
|
<condition property="edition" value="JDBC3">
|
|
<equals arg1="${jdbc3}" arg2="true"/>
|
|
</condition>
|
|
<condition property="edition" value="JDBC2 Enterprise">
|
|
<and>
|
|
<available classname="javax.sql.DataSource" />
|
|
<equals arg1="${jdbc2}" arg2="true"/>
|
|
</and>
|
|
</condition>
|
|
|
|
<!-- determine the connection class -->
|
|
<condition property="connectclass" value="org.postgresql.jdbc1.Jdbc1Connection">
|
|
<equals arg1="${jdbc1}" arg2="true"/>
|
|
</condition>
|
|
<condition property="connectclass" value="org.postgresql.jdbc2.Jdbc2Connection">
|
|
<equals arg1="${jdbc2}" arg2="true"/>
|
|
</condition>
|
|
<condition property="connectclass" value="org.postgresql.jdbc3.Jdbc3Connection">
|
|
<equals arg1="${jdbc3}" arg2="true"/>
|
|
</condition>
|
|
|
|
<!-- determine the ssl status -->
|
|
<condition property="ssl_config" value="">
|
|
<equals arg1="${ssl}" arg2="true"/>
|
|
</condition>
|
|
<condition property="ssl_config" value="//">
|
|
<not>
|
|
<equals arg1="${ssl}" arg2="true"/>
|
|
</not>
|
|
</condition>
|
|
<condition property="ssl_edition" value="SSL">
|
|
<equals arg1="${ssl}" arg2="true"/>
|
|
</condition>
|
|
<condition property="ssl_edition" value="NO SSL">
|
|
<not>
|
|
<equals arg1="${ssl}" arg2="true"/>
|
|
</not>
|
|
</condition>
|
|
|
|
<!-- Some defaults -->
|
|
<filter token="MAJORVERSION" value="${major}" />
|
|
<filter token="MINORVERSION" value="${minor}" />
|
|
<filter token="VERSION" value="PostgreSQL ${fullversion} ${edition} with ${ssl_edition}" />
|
|
<filter token="JDBCCONNECTCLASS" value="${connectclass}" />
|
|
<filter token="DEF_PGPORT" value="${def_pgport}" />
|
|
<filter token="SSL" value="${ssl_config}" />
|
|
|
|
<fail unless="major" message="'major' undefined. Please follow the directions in README."/>
|
|
<fail unless="minor" message="'minor' undefined. Please follow the directions in README."/>
|
|
<fail unless="fullversion" message="'fullversion' undefined. Please follow the directions in README."/>
|
|
<fail unless="def_pgport" message="'def_pgport' undefined. Please follow the directions in README."/>
|
|
<fail unless="enable_debug" message="'enable_debug' undefined. Please follow the directions in README."/>
|
|
|
|
<!-- Put a check for the current version here -->
|
|
|
|
<!-- now copy and filter the file -->
|
|
<copy file="${package}/Driver.java.in"
|
|
overwrite="true"
|
|
tofile="${package}/Driver.java"
|
|
filtering="yes" />
|
|
|
|
<echo message="Configured build for the ${edition} edition driver with ${ssl_edition}" />
|
|
</target>
|
|
|
|
|
|
<!-- Prepares the build directory -->
|
|
<target name="prepare">
|
|
<!-- use the enable_debug option from configure -->
|
|
<condition property="debug" value="on">
|
|
<and>
|
|
<equals arg1="${enable_debug}" arg2="yes" />
|
|
</and>
|
|
</condition>
|
|
<mkdir dir="${builddir}" />
|
|
<mkdir dir="${jardir}" />
|
|
</target>
|
|
|
|
|
|
<!-- This builds the examples -->
|
|
<target name="examples" depends="compile">
|
|
<javac srcdir="${srcdir}" destdir="${builddir}" debug="${debug}">
|
|
<include name="example/**" />
|
|
<exclude name="example/corba/**"/>
|
|
<exclude name="example/blobtest.java" if="jdbc1"/>
|
|
</javac>
|
|
</target>
|
|
|
|
|
|
<!-- Builds the corba example -->
|
|
<target name="corba" if="jdbc2">
|
|
<exec dir="${srcdir}/example/corba" executable="idl2java">
|
|
<arg value="stock.idl" />
|
|
</exec>
|
|
|
|
<javac srcdir="${srcdir}" destdir="${builddir}" debug="${debug}">
|
|
<include name="example/corba/**" />
|
|
</javac>
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Install the jar files -->
|
|
<target name="install" depends="all" if="install.directory">
|
|
<copy todir="${install.directory}" overwrite="true">
|
|
<fileset dir="${jardir}" includes="&jarfiles;" />
|
|
</copy>
|
|
</target>
|
|
|
|
|
|
<!-- Uninstall the jar file -->
|
|
<target name="uninstall" if="install.directory">
|
|
<delete>
|
|
<fileset dir="${install.directory}" includes="&jarfiles;" />
|
|
</delete>
|
|
</target>
|
|
|
|
|
|
|
|
<!-- This target removes any class files from the build directory -->
|
|
<target name="clean">
|
|
<delete quiet="true" dir="${builddir}" />
|
|
<delete quiet="true" dir="${jardir}" />
|
|
<delete quiet="true" file="${package}/Driver.java" />
|
|
</target>
|
|
|
|
<target name="clean_all" depends="clean">
|
|
<delete quiet="true" file="build.properties" />
|
|
</target>
|
|
|
|
|
|
<!-- This compiles and executes the JUnit tests -->
|
|
|
|
<!-- defaults for the tests - override these if required -->
|
|
<property name="server" value="localhost" />
|
|
<property name="port" value="${def_pgport}" />
|
|
<property name="database" value="test" />
|
|
<property name="username" value="test" />
|
|
<!-- Password must be something. Doesn't matter if trust is used! -->
|
|
<property name="password" value="password" />
|
|
|
|
<!-- The tests now build to a separate directory and jarfile from the
|
|
driver build, to ensure we're really testing against the jar we just
|
|
built, and not whatever happens to be in builddir. -->
|
|
|
|
<!-- This compiles and builds the test jarfile. -->
|
|
<target name="testjar" depends="jar" if="junit">
|
|
<mkdir dir="${builddir}/tests"/>
|
|
<javac srcdir="${srcdir}" destdir="${builddir}/tests" debug="${debug}">
|
|
<include name="${package}/test/**" />
|
|
|
|
<exclude name="${package}/test/jdbc2/**" unless="jdbc2tests"/>
|
|
<exclude name="${package}/test/jdbc2/optional/**" unless="jdbc2optionaltests" />
|
|
<exclude name="${package}/test/jdbc3/**" unless="jdbc3tests" />
|
|
<exclude name="${package}/test/util/**" unless="jdbc2optionaltests"/>
|
|
|
|
<classpath>
|
|
<pathelement location="${jardir}/postgresql.jar"/>
|
|
</classpath>
|
|
</javac>
|
|
<jar jarfile="${jardir}/postgresql-tests.jar" basedir="${builddir}/tests"/>
|
|
</target>
|
|
|
|
<!-- This actually runs the tests -->
|
|
<target name="runtest" depends="testjar" if="junit.task">
|
|
<junit>
|
|
<formatter type="brief" usefile="false"/>
|
|
|
|
<sysproperty key="server" value="${server}" />
|
|
<sysproperty key="port" value="${port}" />
|
|
<sysproperty key="database" value="${database}" />
|
|
<sysproperty key="username" value="${username}" />
|
|
<sysproperty key="password" value="${password}" />
|
|
|
|
<classpath>
|
|
<pathelement location="${jardir}/postgresql.jar" />
|
|
<pathelement location="${jardir}/postgresql-tests.jar" />
|
|
<pathelement path="${java.class.path}" />
|
|
</classpath>
|
|
|
|
<test name="org.postgresql.test.jdbc2.Jdbc2TestSuite" if="jdbc2tests"/>
|
|
<test name="org.postgresql.test.jdbc2.optional.OptionalTestSuite" if="jdbc2optionaltests"/>
|
|
<test name="org.postgresql.test.jdbc3.Jdbc3TestSuite" if="jdbc3tests"/>
|
|
</junit>
|
|
</target>
|
|
|
|
<!-- This is the target invoked by the Makefile -->
|
|
<target name="test" depends="testjar,runtest"/>
|
|
|
|
</project>
|