mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-18 18:44:06 +08:00
Reinstalled revision 1.36 (looks Peter Mount installed
a new JDBC Makefile here by accident) Jan
This commit is contained in:
parent
dbd8d38fa5
commit
9d56aff7bc
@ -1,283 +1,65 @@
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Makefile
|
||||
# Makefile for Java JDBC interface
|
||||
# Makefile.inc--
|
||||
# Makefile for src/bin (utility programs)
|
||||
#
|
||||
# Copyright (c) 1994, Regents of the University of California
|
||||
#
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# $Id: Makefile,v 1.37 2000/04/26 05:50:18 peter Exp $
|
||||
# $Header: /cvsroot/pgsql/src/interfaces/Makefile,v 1.38 2000/04/26 09:03:10 wieck Exp $
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
FIND = find
|
||||
IDL2JAVA = idltojava -fno-cpp -fno-tie
|
||||
JAR = jar
|
||||
JAVA = java
|
||||
JAVAC = javac -g
|
||||
JAVADOC = javadoc
|
||||
RM = rm -f
|
||||
TOUCH = touch
|
||||
SRCDIR= ..
|
||||
include $(SRCDIR)/Makefile.global
|
||||
|
||||
# This defines how to compile a java class
|
||||
.java.class:
|
||||
$(JAVAC) $<
|
||||
|
||||
.SUFFIXES: .class .java
|
||||
.PHONY: all clean doc examples msg
|
||||
# Note: the klugery for perl5 is to ensure that the perl5 shared lib
|
||||
# gets built with the correct path to the installed location of libpq
|
||||
# during "make install", but is built against the local tree during
|
||||
# ordinary building and testing. During install, we must also guard
|
||||
# against the likelihood that we don't have permissions to install into
|
||||
# the Perl module library.
|
||||
|
||||
# This is the base directory of the driver. In 7.0, this changed from
|
||||
# postgresql to org/postgresql
|
||||
PGBASE = org/postgresql
|
||||
.DEFAULT all install clean dep depend distclean:
|
||||
$(MAKE) -C libpq $@
|
||||
$(MAKE) -C ecpg $@
|
||||
ifeq ($(HAVE_Cplusplus), true)
|
||||
$(MAKE) -C libpq++ $@
|
||||
else
|
||||
echo $(HAVE_Cplusplus): No C++
|
||||
endif
|
||||
$(MAKE) -C libpgeasy $@
|
||||
ifeq ($(USE_TCL), true)
|
||||
$(MAKE) -C libpgtcl $@
|
||||
endif
|
||||
ifeq ($(USE_PERL), true)
|
||||
if [ "$@" = "install" ]; then \
|
||||
$(MAKE) $(MFLAGS) install-perl5; \
|
||||
else \
|
||||
$(MAKE) $(MFLAGS) perl5/Makefile; \
|
||||
$(MAKE) $(MFLAGS) -C perl5 $@; \
|
||||
fi
|
||||
endif
|
||||
ifeq ($(USE_ODBC), true)
|
||||
$(MAKE) -C odbc $@
|
||||
endif
|
||||
|
||||
# In 6.5, the all rule builds the makeVersion class which then calls make using
|
||||
# the jdbc1 or jdbc2 rules
|
||||
all:
|
||||
@echo ------------------------------------------------------------
|
||||
@echo Due to problems with some JVMs that dont return a meaningful
|
||||
@echo version number, we have had to make the choice of what jdbc
|
||||
@echo version is built as a compile time option.
|
||||
@echo
|
||||
@echo If you are using JDK1.1.x, you will need the JDBC1.2 driver.
|
||||
@echo To compile, type:
|
||||
@echo " make jdbc1 jar"
|
||||
@echo
|
||||
@echo "If you are using JDK1.2 (aka Java2) you need the JDBC2."
|
||||
@echo To compile, type:
|
||||
@echo " make jdbc2 jar"
|
||||
@echo
|
||||
@echo Once you have done this, a postgresql.jar file will be
|
||||
@echo produced. This file will only work with that particular
|
||||
@echo JVM.
|
||||
@echo
|
||||
@echo ------------------------------------------------------------
|
||||
perl5/Makefile: perl5/Makefile.PL
|
||||
cd perl5 && $(PERL) Makefile.PL POLLUTE=1
|
||||
|
||||
msg:
|
||||
@echo ------------------------------------------------------------
|
||||
@echo The JDBC driver has now been built. To make it available to
|
||||
@echo other applications, copy the postgresql.jar file to a public
|
||||
@echo "place (under unix this could be /usr/local/lib) and add it"
|
||||
@echo to the class path.
|
||||
@echo
|
||||
@echo Then either add -Djdbc.drivers=postgresql.Driver to the
|
||||
@echo commandline when running your application, or edit the
|
||||
@echo "properties file for your application (~/.hotjava/properties"
|
||||
@echo "under unix for HotJava), and add a line containing"
|
||||
@echo jdbc.drivers=postgresql.Driver
|
||||
@echo
|
||||
@echo More details are in the README file and in the main postgresql
|
||||
@echo documentation.
|
||||
@echo
|
||||
@echo ------------------------------------------------------------
|
||||
@echo To build the examples, type:
|
||||
@echo " make examples"
|
||||
@echo
|
||||
@echo "To build the CORBA example (requires Java2):"
|
||||
@echo " make corba"
|
||||
@echo ------------------------------------------------------------
|
||||
@echo
|
||||
install-perl5: perl5/Makefile
|
||||
$(MAKE) -C perl5 clean
|
||||
cd perl5 && POSTGRES_HOME="$(POSTGRESDIR)" $(PERL) Makefile.PL POLLUTE=1
|
||||
$(MAKE) -C perl5 all
|
||||
-@if [ -w `$(MAKE) --quiet -C perl5 echo-installdir` ]; then \
|
||||
$(MAKE) $(MFLAGS) -C perl5 install; \
|
||||
rm -f perl5/Makefile; \
|
||||
else \
|
||||
echo "Skipping install of Perl module for lack of permissions."; \
|
||||
echo "To install it, cd into interfaces/perl5, su to become the"; \
|
||||
echo "appropriate user, and do '$(MAKE) install'."; \
|
||||
fi
|
||||
|
||||
dep depend:
|
||||
|
||||
# This rule builds the javadoc documentation
|
||||
doc:
|
||||
export CLASSPATH=.;\
|
||||
$(JAVADOC) -public \
|
||||
org.postgresql \
|
||||
org.postgresql.fastpath \
|
||||
org.postgresql.largeobject
|
||||
|
||||
# These classes form the driver. These, and only these are placed into
|
||||
# the jar file.
|
||||
OBJ_COMMON= $(PGBASE)/Connection.class \
|
||||
$(PGBASE)/Driver.class \
|
||||
$(PGBASE)/Field.class \
|
||||
$(PGBASE)/PG_Stream.class \
|
||||
$(PGBASE)/ResultSet.class \
|
||||
$(PGBASE)/errors.properties \
|
||||
$(PGBASE)/errors_fr.properties \
|
||||
$(PGBASE)/fastpath/Fastpath.class \
|
||||
$(PGBASE)/fastpath/FastpathArg.class \
|
||||
$(PGBASE)/geometric/PGbox.class \
|
||||
$(PGBASE)/geometric/PGcircle.class \
|
||||
$(PGBASE)/geometric/PGline.class \
|
||||
$(PGBASE)/geometric/PGlseg.class \
|
||||
$(PGBASE)/geometric/PGpath.class \
|
||||
$(PGBASE)/geometric/PGpoint.class \
|
||||
$(PGBASE)/geometric/PGpolygon.class \
|
||||
$(PGBASE)/largeobject/LargeObject.class \
|
||||
$(PGBASE)/largeobject/LargeObjectManager.class \
|
||||
$(PGBASE)/util/PGmoney.class \
|
||||
$(PGBASE)/util/PGobject.class \
|
||||
$(PGBASE)/util/PGtokenizer.class \
|
||||
$(PGBASE)/util/PSQLException.class \
|
||||
$(PGBASE)/util/Serialize.class \
|
||||
$(PGBASE)/util/UnixCrypt.class
|
||||
|
||||
# These files are unique to the JDBC 1 (JDK 1.1) driver
|
||||
OBJ_JDBC1= $(PGBASE)/jdbc1/CallableStatement.class \
|
||||
$(PGBASE)/jdbc1/Connection.class \
|
||||
$(PGBASE)/jdbc1/DatabaseMetaData.class \
|
||||
$(PGBASE)/jdbc1/PreparedStatement.class \
|
||||
$(PGBASE)/jdbc1/ResultSet.class \
|
||||
$(PGBASE)/jdbc1/ResultSetMetaData.class \
|
||||
$(PGBASE)/jdbc1/Statement.class
|
||||
|
||||
# These files are unique to the JDBC 2 (JDK 2 nee 1.2) driver
|
||||
OBJ_JDBC2= $(PGBASE)/jdbc2/ResultSet.class \
|
||||
$(PGBASE)/jdbc2/PreparedStatement.class \
|
||||
$(PGBASE)/jdbc2/CallableStatement.class \
|
||||
$(PGBASE)/jdbc2/Connection.class \
|
||||
$(PGBASE)/jdbc2/DatabaseMetaData.class \
|
||||
$(PGBASE)/jdbc2/ResultSetMetaData.class \
|
||||
$(PGBASE)/jdbc2/Statement.class \
|
||||
$(PGBASE)/largeobject/PGblob.class
|
||||
|
||||
# This rule builds the JDBC1 compliant driver
|
||||
jdbc1:
|
||||
(echo "package org.postgresql;" ;\
|
||||
echo "public class DriverClass {" ;\
|
||||
echo "public static String connectClass=\"org.postgresql.jdbc1.Connection\";" ;\
|
||||
echo "}" \
|
||||
) >$(PGBASE)/DriverClass.java
|
||||
@$(MAKE) jdbc1real
|
||||
|
||||
jdbc1real: $(PGBASE)/DriverClass.class \
|
||||
$(OBJ_COMMON) $(OBJ_JDBC1) postgresql.jar msg
|
||||
|
||||
# This rule builds the JDBC2 compliant driver
|
||||
jdbc2:
|
||||
(echo "package org.postgresql;" ;\
|
||||
echo "public class DriverClass {" ;\
|
||||
echo "public static String connectClass=\"org.postgresql.jdbc2.Connection\";" ;\
|
||||
echo "}" \
|
||||
) >$(PGBASE)/DriverClass.java
|
||||
@$(MAKE) jdbc2real
|
||||
|
||||
jdbc2real: $(PGBASE)/DriverClass.class \
|
||||
$(OBJ_COMMON) $(OBJ_JDBC2) postgresql.jar msg
|
||||
|
||||
# If you have problems with this rule, replace the $( ) with ` ` as some
|
||||
# shells (mainly sh under Solaris) doesn't recognise $( )
|
||||
#
|
||||
# Note: This works by storing all compiled classes under the $(PGBASE)
|
||||
# directory. We use this later for compiling the dual-mode driver.
|
||||
#
|
||||
postgresql.jar: $(OBJ) $(OBJ_COMMON)
|
||||
$(JAR) -c0f $@ `$(FIND) $(PGBASE) -name "*.class" -print` \
|
||||
$(wildcard $(PGBASE)/*.properties)
|
||||
|
||||
# This rule removes any temporary and compiled files from the source tree.
|
||||
clean:
|
||||
$(FIND) . -name "*~" -exec $(RM) {} \;
|
||||
$(FIND) . -name "*.class" -exec $(RM) {} \;
|
||||
$(FIND) . -name "*.html" -exec $(RM) {} \;
|
||||
-$(RM) -rf stock example/corba/stock.built
|
||||
-$(RM) postgresql.jar
|
||||
-$(RM) -rf Package-postgresql *output
|
||||
|
||||
#######################################################################
|
||||
# This helps make workout what classes are from what source files
|
||||
#
|
||||
# Java is unlike C in that one source file can generate several
|
||||
# _Different_ file names
|
||||
#
|
||||
$(PGBASE)/Connection.class: $(PGBASE)/Connection.java
|
||||
$(PGBASE)/DatabaseMetaData.class: $(PGBASE)/DatabaseMetaData.java
|
||||
$(PGBASE)/Driver.class: $(PGBASE)/Driver.java
|
||||
$(PGBASE)/Field.class: $(PGBASE)/Field.java
|
||||
$(PGBASE)/PG_Stream.class: $(PGBASE)/PG_Stream.java
|
||||
$(PGBASE)/PreparedStatement.class: $(PGBASE)/PreparedStatement.java
|
||||
$(PGBASE)/ResultSet.class: $(PGBASE)/ResultSet.java
|
||||
$(PGBASE)/ResultSetMetaData.class: $(PGBASE)/ResultSetMetaData.java
|
||||
$(PGBASE)/Statement.class: $(PGBASE)/Statement.java
|
||||
$(PGBASE)/fastpath/Fastpath.class: $(PGBASE)/fastpath/Fastpath.java
|
||||
$(PGBASE)/fastpath/FastpathArg.class: $(PGBASE)/fastpath/FastpathArg.java
|
||||
$(PGBASE)/geometric/PGbox.class: $(PGBASE)/geometric/PGbox.java
|
||||
$(PGBASE)/geometric/PGcircle.class: $(PGBASE)/geometric/PGcircle.java
|
||||
$(PGBASE)/geometric/PGlseg.class: $(PGBASE)/geometric/PGlseg.java
|
||||
$(PGBASE)/geometric/PGpath.class: $(PGBASE)/geometric/PGpath.java
|
||||
$(PGBASE)/geometric/PGpoint.class: $(PGBASE)/geometric/PGpoint.java
|
||||
$(PGBASE)/geometric/PGpolygon.class: $(PGBASE)/geometric/PGpolygon.java
|
||||
$(PGBASE)/largeobject/LargeObject.class: $(PGBASE)/largeobject/LargeObject.java
|
||||
$(PGBASE)/largeobject/LargeObjectManager.class: $(PGBASE)/largeobject/LargeObjectManager.java
|
||||
$(PGBASE)/util/PGmoney.class: $(PGBASE)/util/PGmoney.java
|
||||
$(PGBASE)/util/PGobject.class: $(PGBASE)/util/PGobject.java
|
||||
$(PGBASE)/util/PGtokenizer.class: $(PGBASE)/util/PGtokenizer.java
|
||||
$(PGBASE)/util/Serialize.class: $(PGBASE)/util/Serialize.java
|
||||
$(PGBASE)/util/UnixCrypt.class: $(PGBASE)/util/UnixCrypt.java
|
||||
|
||||
#######################################################################
|
||||
# These classes are in the example directory, and form the examples
|
||||
EX= example/basic.class \
|
||||
example/blobtest.class \
|
||||
example/datestyle.class \
|
||||
example/psql.class \
|
||||
example/ImageViewer.class \
|
||||
example/metadata.class \
|
||||
example/threadsafe.class
|
||||
# example/Objects.class
|
||||
|
||||
# This rule builds the examples
|
||||
examples: postgresql.jar $(EX)
|
||||
@echo ------------------------------------------------------------
|
||||
@echo The examples have been built.
|
||||
@echo
|
||||
@echo For instructions on how to use them, simply run them. For example:
|
||||
@echo
|
||||
@echo " java example.blobtest"
|
||||
@echo
|
||||
@echo This would display instructions on how to run the example.
|
||||
@echo ------------------------------------------------------------
|
||||
@echo Available examples:
|
||||
@echo
|
||||
@echo " example.basic Basic JDBC useage"
|
||||
@echo " example.blobtest Binary Large Object tests"
|
||||
@echo " example.datestyle Shows how datestyles are handled"
|
||||
@echo " example.ImageViewer Example application storing images"
|
||||
@echo " example.psql Simple java implementation of psql"
|
||||
@echo " example.Objects Demonstrates Object Serialisation"
|
||||
@echo " "
|
||||
@echo These are not really examples, but tests various parts of the driver
|
||||
@echo " example.metadata Tests various metadata methods"
|
||||
@echo " example.threadsafe Tests the driver's thread safety"
|
||||
@echo ------------------------------------------------------------
|
||||
@echo
|
||||
|
||||
example/basic.class: example/basic.java
|
||||
example/blobtest.class: example/blobtest.java
|
||||
example/datestyle.class: example/datestyle.java
|
||||
example/psql.class: example/psql.java
|
||||
example/ImageViewer.class: example/ImageViewer.java
|
||||
example/threadsafe.class: example/threadsafe.java
|
||||
example/metadata.class: example/metadata.java
|
||||
|
||||
#######################################################################
|
||||
#
|
||||
# CORBA This extensive example shows how to integrate PostgreSQL
|
||||
# JDBC & CORBA.
|
||||
|
||||
CORBASRC = $(wildcard example/corba/*.java)
|
||||
CORBAOBJ = $(subst .java,.class,$(CORBASRC))
|
||||
|
||||
corba: jdbc2 example/corba/stock.built $(CORBAOBJ)
|
||||
@echo -------------------------------------------------------
|
||||
@echo The corba example has been built. Before running, you
|
||||
@echo will need to read the example/corba/readme file on how
|
||||
@echo to run the example.
|
||||
@echo
|
||||
|
||||
#
|
||||
# This compiles our idl file and the stubs
|
||||
#
|
||||
# Note: The idl file is in example/corba, but it builds a directory under
|
||||
# the current one. For safety, we delete that directory before running
|
||||
# idltojava
|
||||
#
|
||||
example/corba/stock.built: example/corba/stock.idl
|
||||
-rm -rf stock
|
||||
$(IDL2JAVA) $<
|
||||
$(JAVAC) stock/*.java
|
||||
$(TOUCH) $@
|
||||
|
||||
# tip: we cant use $(wildcard stock/*.java) in the above rule as a race
|
||||
# condition occurs, where javac is passed no arguments
|
||||
#######################################################################
|
||||
.PHONY: install-perl5
|
||||
|
Loading…
Reference in New Issue
Block a user