From 0416641baaf138f4ccdf2b2827588e6d81c5fdac Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Tue, 5 Mar 2002 17:55:23 +0000 Subject: [PATCH] At this moment, --enable-debug adds debugging information to most of the parts o f postgresql. The jdbc drivers are never compiled with debugging support. This p atch make sure that debugging information is added to the jdbc jar when the --en able-debug is added. This was usefull for me for debugging some java jdbc poolin g objects but this might perhaps be usefull for other people too? Dries Verachtert --- configure.in | 2 +- src/Makefile.global.in | 3 +- src/interfaces/jdbc/Makefile | 5 +- src/interfaces/jdbc/build.xml | 476 +++++++++++++++++----------------- 4 files changed, 247 insertions(+), 239 deletions(-) diff --git a/configure.in b/configure.in index 9ac29b62ceb..165f546464c 100644 --- a/configure.in +++ b/configure.in @@ -259,7 +259,7 @@ AC_SUBST(enable_rpath) # PGAC_ARG_BOOL(enable, debug, no, [ --enable-debug build with debugging symbols (-g)]) - +AC_SUBST(enable_debug) # # C compiler diff --git a/src/Makefile.global.in b/src/Makefile.global.in index c2e37f8e9de..aad4c400d18 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -1,5 +1,5 @@ # -*-makefile-*- -# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.141 2001/12/20 21:23:05 momjian Exp $ +# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.142 2002/03/05 17:55:22 momjian Exp $ #------------------------------------------------------------------------------ # All PostgreSQL makefiles include this file and use the variables it sets, @@ -132,6 +132,7 @@ MULTIBYTE = @MULTIBYTE@ enable_shared = @enable_shared@ enable_rpath = @enable_rpath@ enable_nls = @enable_nls@ +enable_debug = @enable_debug@ python_version = @python_version@ python_includespec = @python_includespec@ diff --git a/src/interfaces/jdbc/Makefile b/src/interfaces/jdbc/Makefile index 311645a6c65..3b88af4d3c7 100644 --- a/src/interfaces/jdbc/Makefile +++ b/src/interfaces/jdbc/Makefile @@ -4,7 +4,7 @@ # # Copyright (c) 2001, PostgreSQL Global Development Group # -# $Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/Makefile,v 1.33 2001/07/06 23:07:20 petere Exp $ +# $Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/Makefile,v 1.34 2002/03/05 17:55:23 momjian Exp $ # #------------------------------------------------------------------------- @@ -17,7 +17,8 @@ minorversion := $(shell echo $(VERSION) | sed 's/^[0-9][0-9]*\.\([0-9][0-9]*\).* properties := -Dmajor=$(majorversion) -Dminor=$(minorversion) \ -Dfullversion=$(VERSION) \ - -Ddef_pgport=$(DEF_PGPORT) + -Ddef_pgport=$(DEF_PGPORT) \ + -Denable_debug=$(enable_debug) all: $(ANT) -buildfile $(srcdir)/build.xml all \ diff --git a/src/interfaces/jdbc/build.xml b/src/interfaces/jdbc/build.xml index c378d8df19b..a7126825368 100644 --- a/src/interfaces/jdbc/build.xml +++ b/src/interfaces/jdbc/build.xml @@ -1,235 +1,241 @@ -<?xml version="1.0"?> -<!-- - - build file to allow ant (http://jakarta.apache.org/ant/) to be used - to build the PostgreSQL JDBC Driver - - $Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/build.xml,v 1.20 2002/02/24 16:12:51 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="yes" /> - - <!-- - 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, enterprise - --> - <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"/> - <equals arg1="${ant.java.version}" arg2="1.4"/> - </or> - </condition> - <condition property="datasource"> - <and> - <or> - <equals arg1="${ant.java.version}" arg2="1.2"/> - <equals arg1="${ant.java.version}" arg2="1.3"/> - </or> - <available classname="javax.sql.DataSource"/> - </and> - </condition> - <available property="junit" classname="junit.framework.Test" /> - </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" whenempty="fail"> - <fileset dir="${builddir}"> - <include name="${package}/**/*.class" /> - <exclude name="${package}/test/**" /> - </fileset> - - <fileset dir="${srcdir}"> - <include name="${package}/*.properties" /> - </fileset> - </jar> - - <jar jarfile="${jardir}/postgresql-examples.jar" whenempty="fail"> - <fileset dir="${builddir}"> - <include name="example/**/*.class" /> - </fileset> - - <fileset dir="${srcdir}"> - <include name="example/*.properties" /> - </fileset> - </jar> - </target> - - - <!-- This is the core of the driver. It is common for all three versions. --> - <target name="compile" depends="prepare,check_versions,driver"> - <javac srcdir="${srcdir}" destdir="${builddir}" debug="${debug}"> - <include name="${package}/**" /> - - <exclude name="${package}/jdbc1/**" unless="jdbc1"/> - <exclude name="${package}/jdbc2/**" unless="jdbc2"/> - - <exclude name="${package}/largeobject/PGblob.java" unless="jdbc2" /> - <exclude name="${package}/largeobject/PGclob.java" unless="jdbc2" /> - - <exclude name="${package}/PostgresqlDataSource.java" unless="datasource" /> - <exclude name="${package}/xa/**" unless="datasource" /> - - <exclude name="${package}/test/**" unless="junit" /> - </javac> - </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"> - <!-- determine the edition text --> - <property name="edition" value="JDBC1" /> - <condition property="edition" value="JDBC2"> - <or> - <equals arg1="${jdbc2}" arg2="true"/> - <equals arg1="${jdbc3}" arg2="true"/> <!-- fake it for now --> - - </or> - </condition> - - <condition property="edition" value="JDBC2 Enterprise"> - <and> - <available classname="javax.sql.DataSource" /> - <equals arg1="${jdbc2}" arg2="true"/> - </and> - </condition> - - <!-- determine the connection class --> - <property name="connectclass" value="org.postgresql.jdbc1.Connection" /> - <available property="connectclass" value="org.postgresql.jdbc2.Connection" classname="java.lang.ThreadLocal" /> - - <!-- Some defaults --> - <filter token="MAJORVERSION" value="${major}" /> - <filter token="MINORVERSION" value="${minor}" /> - <filter token="VERSION" value="PostgreSQL ${fullversion} ${edition}" /> - <filter token="JDBCCONNECTCLASS" value="${connectclass}" /> - <filter token="DEF_PGPORT" value="${def_pgport}" /> - - <!-- Put a check for the current version here --> - - <!-- now copy and filter the file --> - <copy file="${package}/Driver.java.in" - tofile="${package}/Driver.java" - filtering="yes" /> - - <echo message="Configured build for the ${edition} edition driver" /> - </target> - - - <!-- Prepares the build directory --> - <target name="prepare"> - <mkdir dir="${builddir}" /> - <mkdir dir="${jardir}" /> - </target> - - - <!-- This builds the examples --> - <target name="examples" depends="compile"> - <javac srcdir="${srcdir}" destdir="${builddir}"> - <include name="example/**" /> - <exclude name="example/corba/**"/> - <exclude name="example/blobtest.java" unless="jdk1.2+"/> - </javac> - </target> - - - <!-- Builds the corba example --> - <target name="corba" if="jdk1.2+"> - <exec dir="${srcdir}/example/corba" executable="idl2java"> - <arg value="stock.idl" /> - </exec> - - <javac srcdir="${srcdir}" destdir="${builddir}"> - <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> - - - - <!-- This compiles and executes the JUnit tests --> - - <!-- defaults for the tests - override these if required --> - <property name="database" value="jdbc:postgresql:test" /> - <property name="username" value="test" /> - <!-- Password must be something. Doesn't matter if trust is used! --> - <property name="password" value="password" /> - <!-- junit.ui is one of textui, awtui, or swingui --> - <property name="junit.ui" value="textui" /> - - - <target name="test" depends="jar" if="junit"> - <javac srcdir="${srcdir}" destdir="${builddir}"> - <include name="${package}/test/jdbc2/**" if="jdk1.2+" /> - <include name="${package}/test/java2ee/**" if="jdk1.2e+" /> - </javac> - - <java fork="yes" classname="junit.${junit.ui}.TestRunner" taskname="junit" failonerror="true"> - <arg value="org.postgresql.test.JDBC2Tests" /> - <sysproperty key="database" value="${database}" /> - <sysproperty key="username" value="${username}" /> - <sysproperty key="password" value="${password}" /> - <classpath> - <pathelement location="${builddir}" /> - <pathelement path="${java.class.path}" /> - </classpath> - </java> - </target> - -</project> +<?xml version="1.0"?> +<!-- + + build file to allow ant (http://jakarta.apache.org/ant/) to be used + to build the PostgreSQL JDBC Driver + + $Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/build.xml,v 1.21 2002/03/05 17:55:23 momjian 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="off" /> + + <!-- + 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, enterprise + --> + <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"/> + <equals arg1="${ant.java.version}" arg2="1.4"/> + </or> + </condition> + <condition property="datasource"> + <and> + <or> + <equals arg1="${ant.java.version}" arg2="1.2"/> + <equals arg1="${ant.java.version}" arg2="1.3"/> + </or> + <available classname="javax.sql.DataSource"/> + </and> + </condition> + <available property="junit" classname="junit.framework.Test" /> + </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" whenempty="fail"> + <fileset dir="${builddir}"> + <include name="${package}/**/*.class" /> + <exclude name="${package}/test/**" /> + </fileset> + + <fileset dir="${srcdir}"> + <include name="${package}/*.properties" /> + </fileset> + </jar> + + <jar jarfile="${jardir}/postgresql-examples.jar" whenempty="fail"> + <fileset dir="${builddir}"> + <include name="example/**/*.class" /> + </fileset> + + <fileset dir="${srcdir}"> + <include name="example/*.properties" /> + </fileset> + </jar> + </target> + + + <!-- This is the core of the driver. It is common for all three versions. --> + <target name="compile" depends="prepare,check_versions,driver"> + <javac srcdir="${srcdir}" destdir="${builddir}" debug="${debug}"> + <include name="${package}/**" /> + + <exclude name="${package}/jdbc1/**" unless="jdbc1"/> + <exclude name="${package}/jdbc2/**" unless="jdbc2"/> + + <exclude name="${package}/largeobject/PGblob.java" unless="jdbc2" /> + <exclude name="${package}/largeobject/PGclob.java" unless="jdbc2" /> + + <exclude name="${package}/PostgresqlDataSource.java" unless="datasource" /> + <exclude name="${package}/xa/**" unless="datasource" /> + + <exclude name="${package}/test/**" unless="junit" /> + </javac> + </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"> + <!-- determine the edition text --> + <property name="edition" value="JDBC1" /> + <condition property="edition" value="JDBC2"> + <or> + <equals arg1="${jdbc2}" arg2="true"/> + <equals arg1="${jdbc3}" arg2="true"/> <!-- fake it for now --> + + </or> + </condition> + + <condition property="edition" value="JDBC2 Enterprise"> + <and> + <available classname="javax.sql.DataSource" /> + <equals arg1="${jdbc2}" arg2="true"/> + </and> + </condition> + + <!-- determine the connection class --> + <property name="connectclass" value="org.postgresql.jdbc1.Connection" /> + <available property="connectclass" value="org.postgresql.jdbc2.Connection" classname="java.lang.ThreadLocal" /> + + <!-- Some defaults --> + <filter token="MAJORVERSION" value="${major}" /> + <filter token="MINORVERSION" value="${minor}" /> + <filter token="VERSION" value="PostgreSQL ${fullversion} ${edition}" /> + <filter token="JDBCCONNECTCLASS" value="${connectclass}" /> + <filter token="DEF_PGPORT" value="${def_pgport}" /> + + <!-- Put a check for the current version here --> + + <!-- now copy and filter the file --> + <copy file="${package}/Driver.java.in" + tofile="${package}/Driver.java" + filtering="yes" /> + + <echo message="Configured build for the ${edition} edition driver" /> + </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" unless="jdk1.2+"/> + </javac> + </target> + + + <!-- Builds the corba example --> + <target name="corba" if="jdk1.2+"> + <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> + + + + <!-- This compiles and executes the JUnit tests --> + + <!-- defaults for the tests - override these if required --> + <property name="database" value="jdbc:postgresql:test" /> + <property name="username" value="test" /> + <!-- Password must be something. Doesn't matter if trust is used! --> + <property name="password" value="password" /> + <!-- junit.ui is one of textui, awtui, or swingui --> + <property name="junit.ui" value="textui" /> + + + <target name="test" depends="jar" if="junit"> + <javac srcdir="${srcdir}" destdir="${builddir}" debug="${debug}"> + <include name="${package}/test/jdbc2/**" if="jdk1.2+" /> + <include name="${package}/test/java2ee/**" if="jdk1.2e+" /> + </javac> + + <java fork="yes" classname="junit.${junit.ui}.TestRunner" taskname="junit" failonerror="true"> + <arg value="org.postgresql.test.JDBC2Tests" /> + <sysproperty key="database" value="${database}" /> + <sysproperty key="username" value="${username}" /> + <sysproperty key="password" value="${password}" /> + <classpath> + <pathelement location="${builddir}" /> + <pathelement path="${java.class.path}" /> + </classpath> + </java> + </target> + +</project> -- GitLab