aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.shlib116
-rw-r--r--src/interfaces/ecpg/compatlib/Makefile5
-rw-r--r--src/interfaces/ecpg/ecpglib/Makefile3
-rw-r--r--src/interfaces/ecpg/pgtypeslib/Makefile5
-rw-r--r--src/interfaces/libpq/Makefile3
5 files changed, 71 insertions, 61 deletions
diff --git a/src/Makefile.shlib b/src/Makefile.shlib
index 300d8854470..0d7283ce3ea 100644
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
@@ -6,7 +6,7 @@
# Copyright (c) 1998, Regents of the University of California
#
# IDENTIFICATION
-# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.76 2004/05/19 21:37:43 momjian Exp $
+# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.77 2004/07/13 00:06:46 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -71,8 +71,14 @@ LINK.static = $(AR) $(AROPT)
ifeq ($(enable_shared), yes)
+# Default shlib naming convention used by the majority of platforms
+shlib = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
+shlib_major = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
+shlib_bare = lib$(NAME)$(DLSUFFIX)
+
# For each platform we support shared libraries on, set shlib to the
-# name of the library, LINK.shared to the command to link the library,
+# name of the library (if default above is not right), set
+# LINK.shared to the command to link the library,
# and adjust SHLIB_LINK if necessary.
# Try to keep the sections in some kind of order, folks...
@@ -82,17 +88,28 @@ override CFLAGS += $(CFLAGS_SL)
soname = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
ifeq ($(PORTNAME), aix)
- shlib := lib$(NAME)$(DLSUFFIX)
+ shlib = lib$(NAME)$(DLSUFFIX)
# SHLIB_LINK += -lc
endif
ifeq ($(PORTNAME), darwin)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
- LINK.shared = $(COMPILER) -bundle
+ ifneq ($(SO_MAJOR_VERSION), 0)
+ version_link := -compatibility_version $(SO_MAJOR_VERSION) -current_version $(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
+ endif
+ ifeq ($(DLTYPE), library)
+ # linkable library
+ DLSUFFIX := .dylib
+ LINK.shared = $(COMPILER) -dynamiclib -install_name $(libdir)/lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX) $(version_link) -multiply_defined suppress
+ else
+ # loadable module (default case)
+ DLSUFFIX := .so
+ LINK.shared = $(COMPILER) -bundle
+ endif
+ shlib = lib$(NAME).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)$(DLSUFFIX)
+ shlib_major = lib$(NAME).$(SO_MAJOR_VERSION)$(DLSUFFIX)
endif
ifeq ($(PORTNAME), openbsd)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
ifdef ELF_SYSTEM
LINK.shared = $(COMPILER) -shared -Wl,-x,-soname,$(soname)
SHLIB_LINK += -lc
@@ -102,7 +119,6 @@ ifeq ($(PORTNAME), openbsd)
endif
ifeq ($(PORTNAME), bsdi)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
ifeq ($(DLSUFFIX), .so)
LINK.shared = $(COMPILER) -shared -Wl,-x,-soname,$(soname)
SHLIB_LINK += -lc
@@ -114,16 +130,15 @@ endif
ifeq ($(PORTNAME), freebsd)
ifdef ELF_SYSTEM
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
+ shlib = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
LINK.shared = $(COMPILER) -shared -Wl,-x,-soname,$(soname)
else
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
+ shlib = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
LINK.shared = $(LD) -x -Bshareable -Bforcearchive
endif
endif
ifeq ($(PORTNAME), netbsd)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
ifdef ELF_SYSTEM
LINK.shared = $(COMPILER) -shared -Wl,-x,-soname,$(soname)
else
@@ -132,7 +147,7 @@ ifeq ($(PORTNAME), netbsd)
endif
ifeq ($(PORTNAME), hpux)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
+ shlib = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
LINK.shared = $(LD) +h $(soname) -b +b $(libdir)
ifeq ($(GCC), yes)
SHLIB_LINK += `$(CC) -print-libgcc-file-name`
@@ -140,17 +155,15 @@ ifeq ($(PORTNAME), hpux)
endif
ifeq ($(PORTNAME), irix)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
+ shlib = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
LINK.shared = $(COMPILER) -shared -Wl,-set_version,sgi$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
endif
ifeq ($(PORTNAME), linux)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
LINK.shared = $(COMPILER) -shared -Wl,-soname,$(soname)
endif
ifeq ($(PORTNAME), solaris)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
ifeq ($(GCC), yes)
LINK.shared = $(CC) -shared
else
@@ -164,17 +177,14 @@ ifeq ($(PORTNAME), solaris)
endif
ifeq ($(PORTNAME), sunos4)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
LINK.shared = $(LD) -assert pure-text -Bdynamic
endif
ifeq ($(PORTNAME), osf)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
LINK.shared = $(LD) -shared -expect_unresolved '*'
endif
ifeq ($(PORTNAME), sco)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
ifeq ($(GCC), yes)
LINK.shared = $(CC) -shared
else
@@ -184,17 +194,14 @@ ifeq ($(PORTNAME), sco)
endif
ifeq ($(PORTNAME), svr4)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
LINK.shared = $(LD) -G
endif
ifeq ($(PORTNAME), univel)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
LINK.shared = $(LD) -G -z text
endif
ifeq ($(PORTNAME), unixware)
- shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
ifeq ($(GCC), yes)
LINK.shared = $(CC) -shared
else
@@ -204,15 +211,15 @@ ifeq ($(PORTNAME), unixware)
endif
ifeq ($(PORTNAME), cygwin)
- shlib := $(NAME)$(DLSUFFIX)
+ shlib = $(NAME)$(DLSUFFIX)
endif
ifeq ($(PORTNAME), win32)
- shlib := lib$(NAME)$(DLSUFFIX)
+ shlib = lib$(NAME)$(DLSUFFIX)
endif
ifeq ($(PORTNAME), beos)
- shlib := lib$(NAME)$(DLSUFFIX)
+ shlib = lib$(NAME)$(DLSUFFIX)
LINK.shared = $(LD) -nostart
SHLIB_LINK += -ltermcap -lstdc++.r4 -lbind -lsocket -L/boot/develop/lib/x86
endif
@@ -258,23 +265,23 @@ endif # not cygwin
ifeq ($(enable_shared), yes)
-ifneq ($(PORTNAME), beos)
-ifneq ($(PORTNAME), cygwin)
ifneq ($(PORTNAME), win32)
+ifneq ($(PORTNAME), cygwin)
+ifneq ($(PORTNAME), beos)
ifneq ($(PORTNAME), aix)
# Normal case
$(shlib): $(OBJS)
$(LINK.shared) $(OBJS) $(SHLIB_LINK) -o $@
# If we're using major and minor versions, then make a symlink to major-version-only.
-ifneq ($(shlib), lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION))
- rm -f lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
- $(LN_S) $(shlib) lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
+ifneq ($(shlib), $(shlib_major))
+ rm -f $(shlib_major)
+ $(LN_S) $(shlib) $(shlib_major)
endif
# Make sure we have a link to a name without any version numbers
-ifneq ($(shlib), lib$(NAME)$(DLSUFFIX))
- rm -f lib$(NAME)$(DLSUFFIX)
- $(LN_S) $(shlib) lib$(NAME)$(DLSUFFIX)
+ifneq ($(shlib), $(shlib_bare))
+ rm -f $(shlib_bare)
+ $(LN_S) $(shlib) $(shlib_bare)
endif
else # PORTNAME == aix
@@ -286,15 +293,14 @@ $(shlib): lib$(NAME).a
endif # PORTNAME == aix
-else # PORTNAME == win32
+else # PORTNAME == beos
-# win32 case
-$(shlib) lib$(NAME).a: $(OBJS)
- $(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $(NAME).def $(OBJS)
- $(DLLWRAP) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(NAME).def $(OBJS) $(SHLIB_LINK)
- $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(NAME).def --output-lib lib$(NAME).a
+# BEOS case
+$(shlib): $(OBJS)
+ ln -fs $(top_srcdir)/src/backend/postgres _APP_
+ $(CC) -Xlinker -soname=$@ $(LDFLAGS_SL) -o $@ _APP_ $(OBJS) $(SHLIB_LINK)
-endif # PORTNAME == win32
+endif # PORTNAME == beos
else # PORTNAME == cygwin
@@ -309,14 +315,15 @@ $(DLLINIT): $(DLLINIT:%.o=%.c)
endif # PORTNAME == cygwin
-else # PORTNAME == beos
+else # PORTNAME == win32
-# BEOS case
-$(shlib): $(OBJS)
- ln -fs $(top_srcdir)/src/backend/postgres _APP_
- $(CC) -Xlinker -soname=$@ $(LDFLAGS_SL) -o $@ _APP_ $(OBJS) $(SHLIB_LINK)
+# win32 case
+$(shlib) lib$(NAME).a: $(OBJS)
+ $(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $(NAME).def $(OBJS)
+ $(DLLWRAP) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(NAME).def $(OBJS) $(SHLIB_LINK)
+ $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(NAME).def --output-lib lib$(NAME).a
-endif # PORTNAME == beos
+endif # PORTNAME == win32
endif # enable_shared
@@ -340,17 +347,16 @@ install-lib-shared: $(shlib)
$(INSTALL_SHLIB) $< $(DESTDIR)$(libdir)/$(shlib)
ifneq ($(PORTNAME), cygwin)
ifneq ($(PORTNAME), win32)
-ifneq ($(shlib), lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION))
+ifneq ($(shlib), $(shlib_major))
cd $(DESTDIR)$(libdir) && \
- rm -f lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION) && \
- $(LN_S) $(shlib) lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
+ rm -f $(shlib_major) && \
+ $(LN_S) $(shlib) $(shlib_major)
endif
-ifneq ($(shlib), lib$(NAME)$(DLSUFFIX))
+ifneq ($(shlib), $(shlib_bare))
cd $(DESTDIR)$(libdir) && \
- rm -f lib$(NAME)$(DLSUFFIX) && \
- $(LN_S) $(shlib) lib$(NAME)$(DLSUFFIX)
+ rm -f $(shlib_bare) && \
+ $(LN_S) $(shlib) $(shlib_bare)
endif
-
endif # not win32
endif # not cygwin
endif # enable_shared
@@ -364,9 +370,9 @@ endif # enable_shared
uninstall-lib:
rm -f $(DESTDIR)$(libdir)/lib$(NAME).a
ifeq ($(enable_shared), yes)
- rm -f $(DESTDIR)$(libdir)/lib$(NAME)$(DLSUFFIX) \
- $(DESTDIR)$(libdir)/lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION) \
- $(DESTDIR)$(libdir)/lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
+ rm -f $(DESTDIR)$(libdir)/$(shlib_bare) \
+ $(DESTDIR)$(libdir)/$(shlib_major) \
+ $(DESTDIR)$(libdir)/$(shlib)
endif # enable_shared
@@ -378,7 +384,7 @@ endif # enable_shared
clean-lib:
rm -f lib$(NAME).a
ifeq ($(enable_shared), yes)
- rm -f lib$(NAME)$(DLSUFFIX) lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION) lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
+ rm -f $(shlib_bare) $(shlib_major) $(shlib)
ifdef EXPSUFF
rm -f lib$(NAME)$(EXPSUFF)
endif
diff --git a/src/interfaces/ecpg/compatlib/Makefile b/src/interfaces/ecpg/compatlib/Makefile
index c490e1a2a7b..0d797c1d87c 100644
--- a/src/interfaces/ecpg/compatlib/Makefile
+++ b/src/interfaces/ecpg/compatlib/Makefile
@@ -1,10 +1,10 @@
#-------------------------------------------------------------------------
#
-# Makefile for ecpg library
+# Makefile for ecpg compatibility library
#
# Copyright (c) 1994, Regents of the University of California
#
-# $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/Makefile,v 1.17 2004/04/30 04:14:05 momjian Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/Makefile,v 1.18 2004/07/13 00:06:39 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -15,6 +15,7 @@ include $(top_builddir)/src/Makefile.global
NAME= ecpg_compat
SO_MAJOR_VERSION= 1
SO_MINOR_VERSION= 1
+DLTYPE= library
override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include -I$(libpq_srcdir) \
-I$(top_srcdir)/src/include/utils $(CPPFLAGS)
diff --git a/src/interfaces/ecpg/ecpglib/Makefile b/src/interfaces/ecpg/ecpglib/Makefile
index ab53ce962ea..004bca7f742 100644
--- a/src/interfaces/ecpg/ecpglib/Makefile
+++ b/src/interfaces/ecpg/ecpglib/Makefile
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
-# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.24 2004/05/25 21:20:44 momjian Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.25 2004/07/13 00:06:41 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -15,6 +15,7 @@ include $(top_builddir)/src/Makefile.global
NAME= ecpg
SO_MAJOR_VERSION= 4
SO_MINOR_VERSION= 2
+DLTYPE= library
override CPPFLAGS := -DFRONTEND -I$(top_srcdir)/src/interfaces/ecpg/include \
-I$(libpq_srcdir) -I$(top_builddir)/src/port $(CPPFLAGS)
diff --git a/src/interfaces/ecpg/pgtypeslib/Makefile b/src/interfaces/ecpg/pgtypeslib/Makefile
index 29930181598..165b0346f7b 100644
--- a/src/interfaces/ecpg/pgtypeslib/Makefile
+++ b/src/interfaces/ecpg/pgtypeslib/Makefile
@@ -1,10 +1,10 @@
#-------------------------------------------------------------------------
#
-# Makefile for ecpg library
+# Makefile for ecpg pgtypes library
#
# Copyright (c) 1994, Regents of the University of California
#
-# $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/Makefile,v 1.21 2004/05/26 17:24:07 tgl Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/Makefile,v 1.22 2004/07/13 00:06:43 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -15,6 +15,7 @@ include $(top_builddir)/src/Makefile.global
NAME= pgtypes
SO_MAJOR_VERSION= 1
SO_MINOR_VERSION= 2
+DLTYPE= library
override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include \
-I$(top_srcdir)/src/include/utils -I$(libpq_srcdir) $(CPPFLAGS) \
diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile
index ed76a0d6520..f77ecd4aca9 100644
--- a/src/interfaces/libpq/Makefile
+++ b/src/interfaces/libpq/Makefile
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
-# $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.111 2004/06/19 15:14:17 momjian Exp $
+# $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.112 2004/07/13 00:06:44 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -17,6 +17,7 @@ include $(top_builddir)/src/Makefile.global
NAME= pq
SO_MAJOR_VERSION= 3
SO_MINOR_VERSION= 2
+DLTYPE= library
override CPPFLAGS := -I$(srcdir) $(CPPFLAGS) -I$(top_builddir)/src/port -DFRONTEND
override CFLAGS += $(PTHREAD_CFLAGS)