2000-06-28 20:30:16 +02:00
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
# Makefile for src/interfaces/libpq library
|
|
|
|
#
|
2004-12-31 23:04:05 +01:00
|
|
|
# Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
2004-10-16 22:10:57 +02:00
|
|
|
# Portions Copyright (c) 1994, Regents of the University of California
|
2000-06-28 20:30:16 +02:00
|
|
|
#
|
2005-03-25 01:34:31 +01:00
|
|
|
# $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.131 2005/03/25 00:34:28 tgl Exp $
|
2000-06-28 20:30:16 +02:00
|
|
|
#
|
|
|
|
#-------------------------------------------------------------------------
|
|
|
|
|
|
|
|
subdir = src/interfaces/libpq
|
|
|
|
top_builddir = ../../..
|
2000-08-31 18:12:35 +02:00
|
|
|
include $(top_builddir)/src/Makefile.global
|
2000-06-28 20:30:16 +02:00
|
|
|
|
2002-07-18 05:59:49 +02:00
|
|
|
|
2000-06-28 20:30:16 +02:00
|
|
|
# shared library parameters
|
|
|
|
NAME= pq
|
2005-03-11 20:13:43 +01:00
|
|
|
SO_MAJOR_VERSION= 4
|
2005-03-14 18:27:50 +01:00
|
|
|
SO_MINOR_VERSION= 1
|
2004-07-13 02:06:46 +02:00
|
|
|
DLTYPE= library
|
2000-06-28 20:30:16 +02:00
|
|
|
|
2004-10-04 22:36:12 +02:00
|
|
|
override CPPFLAGS := -DFRONTEND -I$(srcdir) $(CPPFLAGS) -I$(top_builddir)/src/port
|
2004-05-21 22:56:50 +02:00
|
|
|
override CFLAGS += $(PTHREAD_CFLAGS)
|
2000-06-28 20:30:16 +02:00
|
|
|
|
2004-10-04 22:36:12 +02:00
|
|
|
# Need to recomple any libpgport object files
|
|
|
|
LIBS := $(patsubst -lpgport,, $(LIBS))
|
|
|
|
|
2004-05-11 01:09:04 +02:00
|
|
|
OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \
|
|
|
|
fe-protocol2.o fe-protocol3.o pqexpbuffer.o pqsignal.o fe-secure.o \
|
2004-10-17 00:52:55 +02:00
|
|
|
md5.o ip.o wchar.o encnames.o noblock.o pgstrcasecmp.o thread.o \
|
2004-05-24 03:01:38 +02:00
|
|
|
$(filter crypt.o getaddrinfo.o inet_aton.o open.o snprintf.o strerror.o, $(LIBOBJS))
|
2004-06-19 06:43:18 +02:00
|
|
|
|
2004-11-17 18:46:24 +01:00
|
|
|
ifeq ($(PORTNAME), cygwin)
|
|
|
|
override shlib = cyg$(NAME)$(DLSUFFIX)
|
|
|
|
endif
|
|
|
|
|
2003-09-07 05:43:57 +02:00
|
|
|
ifeq ($(PORTNAME), win32)
|
2004-10-12 03:04:11 +02:00
|
|
|
OBJS += win32.o libpqrc.o
|
2004-10-16 05:26:43 +02:00
|
|
|
DLL_DEFFILE=libpqdll.def
|
2004-11-20 22:13:06 +01:00
|
|
|
|
|
|
|
libpqrc.o: libpq.rc
|
|
|
|
windres -i libpq.rc -o libpqrc.o
|
|
|
|
|
2004-06-19 06:43:18 +02:00
|
|
|
ifeq ($(enable_thread_safety), yes)
|
|
|
|
# This doesn't work yet because configure test fails. 2004-06-19
|
2004-10-12 03:04:11 +02:00
|
|
|
OBJS += pthread-win32.o
|
2004-11-20 22:13:06 +01:00
|
|
|
PTHREAD_H_WIN32 = pthread.h
|
2004-06-19 06:43:18 +02:00
|
|
|
endif
|
2003-09-07 05:43:57 +02:00
|
|
|
endif
|
2000-06-28 20:30:16 +02:00
|
|
|
|
2002-07-18 05:59:49 +02:00
|
|
|
|
2000-10-25 18:13:52 +02:00
|
|
|
# Add libraries that libpq depends (or might depend) on into the
|
|
|
|
# shared library link. (The order in which you list them here doesn't
|
|
|
|
# matter.)
|
2004-04-23 20:15:55 +02:00
|
|
|
SHLIB_LINK += $(filter -lcrypt -ldes -lkrb -lcom_err -lcrypto -lk5crypto -lkrb5 -lssl -lsocket -lnsl -lresolv -lintl, $(LIBS)) $(PTHREAD_LIBS)
|
Briefly,
* configure + Makefile changes
* shared memory attaching in EXEC_BACKEND case (+ minor fix for apparent
cygwin bug under cygwin/EXEC_BACKEND case only)
* PATH env var separator differences
* missing win32 rand functions added
* placeholder replacements for sync etc under port.h
To those who are really interested, and there are a few of you: the attached
patch + file will allow the source base to be compiled (and, for some
definition, "run") under MingW, with the following caveats (I wanted to
first properly fix all but the last of these, but y'all won't quit asking
for a patch :-):
* child death: SIGCHLD not yet sent, so as a minimum, you'll need to
put in some sort of delay after StartupDatabase, and handle setting
StartupPID to 0 etc (ie. the stuff the reaper() signal function is supposed
to do)
* dirmod.c: comment out the elog calls
* dfmgr.c: some hackage required to substitute_libpath_macro
* slru/xact.c: comment out the errno checking after the readdir
(fixed by next version of MingW)
Again, this is only if you *really* want to see postgres compile and start,
and is a nice leg-up for working on the other Win32 TODO list items. Just
don't expect too much else from it at this point...
Claudio Natoli
2004-02-02 01:11:31 +01:00
|
|
|
ifeq ($(PORTNAME), win32)
|
2005-03-25 01:34:31 +01:00
|
|
|
SHLIB_LINK += -lshfolder -lwsock32 -lws2_32 $(filter -leay32 -lssleay32 -lcomerr32 -lkrb5_32, $(LIBS))
|
Briefly,
* configure + Makefile changes
* shared memory attaching in EXEC_BACKEND case (+ minor fix for apparent
cygwin bug under cygwin/EXEC_BACKEND case only)
* PATH env var separator differences
* missing win32 rand functions added
* placeholder replacements for sync etc under port.h
To those who are really interested, and there are a few of you: the attached
patch + file will allow the source base to be compiled (and, for some
definition, "run") under MingW, with the following caveats (I wanted to
first properly fix all but the last of these, but y'all won't quit asking
for a patch :-):
* child death: SIGCHLD not yet sent, so as a minimum, you'll need to
put in some sort of delay after StartupDatabase, and handle setting
StartupPID to 0 etc (ie. the stuff the reaper() signal function is supposed
to do)
* dirmod.c: comment out the elog calls
* dfmgr.c: some hackage required to substitute_libpath_macro
* slru/xact.c: comment out the errno checking after the readdir
(fixed by next version of MingW)
Again, this is only if you *really* want to see postgres compile and start,
and is a nice leg-up for working on the other Win32 TODO list items. Just
don't expect too much else from it at this point...
Claudio Natoli
2004-02-02 01:11:31 +01:00
|
|
|
endif
|
2000-06-28 20:30:16 +02:00
|
|
|
|
|
|
|
|
2004-12-19 03:16:31 +01:00
|
|
|
all: $(PTHREAD_H_WIN32) def-files $(srcdir)/libpq.rc all-lib
|
2000-06-28 20:30:16 +02:00
|
|
|
|
|
|
|
# Shared library stuff
|
|
|
|
include $(top_srcdir)/src/Makefile.shlib
|
|
|
|
backend_src = $(top_srcdir)/src/backend
|
|
|
|
|
2002-07-18 05:59:49 +02:00
|
|
|
|
2003-04-14 23:15:13 +02:00
|
|
|
# We use several backend modules verbatim, but since we need to
|
|
|
|
# compile with appropriate options to build a shared lib, we can't
|
|
|
|
# necessarily use the same object files as the backend uses. Instead,
|
|
|
|
# symlink the source files in here and build our own object file.
|
|
|
|
# For port modules, this only happens if configure decides the module
|
|
|
|
# is needed (see filter hack in OBJS, above).
|
|
|
|
|
2004-05-19 06:21:49 +02:00
|
|
|
crypt.c getaddrinfo.c inet_aton.c noblock.c pgstrcasecmp.c snprintf.c strerror.c open.c thread.c: % : $(top_srcdir)/src/port/%
|
2003-04-14 23:15:13 +02:00
|
|
|
rm -f $@ && $(LN_S) $< .
|
|
|
|
|
2003-08-08 05:22:24 +02:00
|
|
|
md5.c ip.c: % : $(backend_src)/libpq/%
|
2001-08-15 20:42:16 +02:00
|
|
|
rm -f $@ && $(LN_S) $< .
|
|
|
|
|
2002-09-03 23:45:44 +02:00
|
|
|
encnames.c wchar.c : % : $(backend_src)/utils/mb/%
|
Commit Karel's patch.
-------------------------------------------------------------------
Subject: Re: [PATCHES] encoding names
From: Karel Zak <zakkr@zf.jcu.cz>
To: Peter Eisentraut <peter_e@gmx.net>
Cc: pgsql-patches <pgsql-patches@postgresql.org>
Date: Fri, 31 Aug 2001 17:24:38 +0200
On Thu, Aug 30, 2001 at 01:30:40AM +0200, Peter Eisentraut wrote:
> > - convert encoding 'name' to 'id'
>
> I thought we decided not to add functions returning "new" names until we
> know exactly what the new names should be, and pending schema
Ok, the patch not to add functions.
> better
>
> ...(): encoding name too long
Fixed.
I found new bug in command/variable.c in parse_client_encoding(), nobody
probably never see this error:
if (pg_set_client_encoding(encoding))
{
elog(ERROR, "Conversion between %s and %s is not supported",
value, GetDatabaseEncodingName());
}
because pg_set_client_encoding() returns -1 for error and 0 as true.
It's fixed too.
IMHO it can be apply.
Karel
PS:
* following files are renamed:
src/utils/mb/Unicode/KOI8_to_utf8.map -->
src/utils/mb/Unicode/koi8r_to_utf8.map
src/utils/mb/Unicode/WIN_to_utf8.map -->
src/utils/mb/Unicode/win1251_to_utf8.map
src/utils/mb/Unicode/utf8_to_KOI8.map -->
src/utils/mb/Unicode/utf8_to_koi8r.map
src/utils/mb/Unicode/utf8_to_WIN.map -->
src/utils/mb/Unicode/utf8_to_win1251.map
* new file:
src/utils/mb/encname.c
* removed file:
src/utils/mb/common.c
--
Karel Zak <zakkr@zf.jcu.cz>
http://home.zf.jcu.cz/~zakkr/
C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
2001-09-06 06:57:30 +02:00
|
|
|
rm -f $@ && $(LN_S) $< .
|
2000-06-28 20:30:16 +02:00
|
|
|
|
|
|
|
|
2004-10-16 22:10:57 +02:00
|
|
|
# We need several not-quite-identical variants of .DEF files to build libpq
|
|
|
|
# DLLs for Windows. These are made from the single source file exports.txt.
|
|
|
|
# Since we can't assume that Windows boxes will have sed, the .DEF files are
|
|
|
|
# always built and included in distribution tarballs.
|
|
|
|
|
2004-12-21 03:14:41 +01:00
|
|
|
distprep: def-files $(srcdir)/libpq.rc
|
2004-10-16 22:10:57 +02:00
|
|
|
|
|
|
|
.PHONY: def-files
|
|
|
|
|
|
|
|
def-files: $(srcdir)/libpqdll.def $(srcdir)/libpqddll.def $(srcdir)/blibpqdll.def
|
|
|
|
|
|
|
|
$(srcdir)/libpqdll.def: exports.txt
|
|
|
|
echo '; DEF file for MS VC++' > $@
|
|
|
|
echo 'LIBRARY LIBPQ' >> $@
|
|
|
|
echo 'DESCRIPTION "PostgreSQL Client Library"' >> $@
|
|
|
|
echo 'EXPORTS' >> $@
|
|
|
|
sed -e '/^#/d' -e 's/^\(.* \)\([0-9][0-9]*\)/ \1@ \2/' < $< >> $@
|
|
|
|
|
|
|
|
$(srcdir)/libpqddll.def: exports.txt
|
|
|
|
echo '; DEF file for MS VC++' > $@
|
|
|
|
echo 'LIBRARY LIBPQD' >> $@
|
|
|
|
echo 'DESCRIPTION "PostgreSQL Client Library"' >> $@
|
|
|
|
echo 'EXPORTS' >> $@
|
|
|
|
sed -e '/^#/d' -e 's/^\(.* \)\([0-9][0-9]*\)/ \1@ \2/' < $< >> $@
|
|
|
|
|
|
|
|
$(srcdir)/blibpqdll.def: exports.txt
|
|
|
|
echo '; DEF file for Borland C++ Builder' > $@
|
|
|
|
echo 'LIBRARY BLIBPQ' >> $@
|
|
|
|
echo 'DESCRIPTION "PostgreSQL Client Library"' >> $@
|
|
|
|
echo 'EXPORTS' >> $@
|
|
|
|
sed -e '/^#/d' -e 's/^\(.* \)\([0-9][0-9]*\)/ _\1@ \2/' < $< >> $@
|
|
|
|
echo '' >> $@
|
|
|
|
echo '; Aliases for MS compatible names' >> $@
|
|
|
|
sed -e '/^#/d' -e 's/^\(.* \)\([0-9][0-9]*\)/ \1= _\1/' < $< | sed 's/ *$$//' >> $@
|
|
|
|
|
2004-12-19 03:16:31 +01:00
|
|
|
# depend on Makefile.global to force rebuild on re-run of configure
|
|
|
|
$(srcdir)/libpq.rc: libpq.rc.in $(top_builddir)/src/Makefile.global
|
|
|
|
sed -e 's/\(VERSION.*\),0 *$$/\1,'`date '+%y%j' | sed 's/^0*//'`'/' < $< > $@
|
2004-10-16 22:10:57 +02:00
|
|
|
|
2004-06-19 17:14:17 +02:00
|
|
|
ifneq ($(PTHREAD_H_WIN32), "")
|
2004-11-20 22:13:06 +01:00
|
|
|
pthread.h: $(top_srcdir)/src/interfaces/libpq/pthread.h.win
|
2004-06-19 06:43:18 +02:00
|
|
|
rm -f $@ && $(LN_S) $< .
|
|
|
|
endif
|
|
|
|
|
2004-11-20 22:13:06 +01:00
|
|
|
fe-connect.o: fe-connect.c $(top_builddir)/src/port/pg_config_paths.h
|
|
|
|
|
|
|
|
$(top_builddir)/src/port/pg_config_paths.h:
|
|
|
|
$(MAKE) -C $(top_builddir)/src/port pg_config_paths.h
|
2004-10-12 03:04:11 +02:00
|
|
|
|
2001-08-28 16:20:28 +02:00
|
|
|
install: all installdirs install-lib
|
Support for DESTDIR make variable. This is used as in `make install
DESTDIR=/else/where' and prepends the value of DESTDIR to the full
installation paths (e.g., /else/where/usr/local/pgsql/bin). This allows
users to install the package into a location different from the one that
was configured and hard-coded into various scripts, e.g., for creating
binary packages.
DESTDIR is in many cases preferrable over `make install
prefix=/else/where' because
a) `prefix' affects the path that is hard-coded into the files, which can
lead to a `make install prefix=xxx' (as done by the regression test
driver) corrupting the files in the source tree with wrong paths.
b) it doesn't work at all if a directory was overridden to not depend on
`prefix', e.g., --sysconfdir=/etc.
(Updating the regression test driver to use DESTDIR is a separate
undertaking.)
See also autoconf@gnu.org, From: Akim Demaille <akim@epita.fr>, Date: 08
Sep 2000 12:48:59 +0200, Message-ID:
<mv4em2vb1lw.fsf@nostromo.lrde.epita.fr>, Subject: Re: HTML format
documentation.
2000-09-17 15:02:52 +02:00
|
|
|
$(INSTALL_DATA) $(srcdir)/libpq-fe.h $(DESTDIR)$(includedir)
|
2001-08-28 16:20:28 +02:00
|
|
|
$(INSTALL_DATA) $(srcdir)/libpq-int.h $(DESTDIR)$(includedir_internal)
|
|
|
|
$(INSTALL_DATA) $(srcdir)/pqexpbuffer.h $(DESTDIR)$(includedir_internal)
|
2003-02-03 15:24:07 +01:00
|
|
|
$(INSTALL_DATA) $(srcdir)/pg_service.conf.sample $(DESTDIR)$(datadir)/pg_service.conf.sample
|
2000-06-28 20:30:16 +02:00
|
|
|
|
|
|
|
installdirs:
|
2001-08-28 16:20:28 +02:00
|
|
|
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir_internal)
|
2000-06-28 20:30:16 +02:00
|
|
|
|
|
|
|
uninstall: uninstall-lib
|
2003-08-23 06:21:59 +02:00
|
|
|
rm -f $(DESTDIR)$(includedir)/libpq-fe.h $(DESTDIR)$(includedir_internal)/libpq-int.h $(DESTDIR)$(includedir_internal)/pqexpbuffer.h
|
2000-06-28 20:30:16 +02:00
|
|
|
|
2004-10-16 22:10:57 +02:00
|
|
|
clean distclean: clean-lib
|
2004-10-17 00:52:55 +02:00
|
|
|
rm -f $(OBJS) crypt.c getaddrinfo.c inet_aton.c noblock.c pgstrcasecmp.c snprintf.c strerror.c open.c thread.c md5.c ip.c encnames.c wchar.c pthread.h
|
2004-10-16 22:10:57 +02:00
|
|
|
|
|
|
|
maintainer-clean: distclean
|
2004-12-21 03:14:41 +01:00
|
|
|
rm -f $(srcdir)/libpqdll.def $(srcdir)/libpqddll.def $(srcdir)/blibpqdll.def $(srcdir)/libpq.rc
|