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