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
This commit is contained in:
Bruce Momjian 2002-03-05 17:55:23 +00:00
parent af41101a40
commit 0416641baa
4 changed files with 247 additions and 239 deletions

View file

@ -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

View file

@ -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@

View file

@ -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 \

View file

@ -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>