Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
a1d5d857
Commit
a1d5d857
authored
Feb 26, 2008
by
Peter Eisentraut
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor the code that creates the shared library export files to appear
only once in Makefile.shlib and not in four copies.
parent
fd15dba5
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
102 additions
and
239 deletions
+102
-239
src/Makefile.shlib
src/Makefile.shlib
+77
-6
src/interfaces/ecpg/compatlib/Makefile
src/interfaces/ecpg/compatlib/Makefile
+6
-58
src/interfaces/ecpg/ecpglib/Makefile
src/interfaces/ecpg/ecpglib/Makefile
+6
-55
src/interfaces/ecpg/pgtypeslib/Makefile
src/interfaces/ecpg/pgtypeslib/Makefile
+6
-58
src/interfaces/libpq/Makefile
src/interfaces/libpq/Makefile
+7
-62
No files found.
src/Makefile.shlib
View file @
a1d5d857
...
...
@@ -6,7 +6,7 @@
# Copyright (c) 1998, Regents of the University of California
#
# IDENTIFICATION
# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.1
09 2007/02/20 22:45:57 momjian
Exp $
# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.1
10 2008/02/26 06:41:23 petere
Exp $
#
#-------------------------------------------------------------------------
...
...
@@ -24,6 +24,8 @@
# OBJS List of object files to include in library
# SHLIB_LINK If shared library relies on other libraries,
# additional stuff to put in its link command
# SHLIB_EXPORTS (optional) Name of file containing list of symbols to
# export
# (If you want a patchlevel, include it in SO_MINOR_VERSION, e.g., "6.2".)
#
# Optional flags when building DLL's (only applicable to win32 and cygwin
...
...
@@ -31,8 +33,6 @@
# DLLTOOL_DEFFLAGS Additional flags when creating the dll .def file
# DLLTOOL_LIBFLAGS Additional flags when creating the lib<module>.a file
# DLLWRAP_FLAGS Additional flags to dllwrap
# DLL_DEFFILE Use pre-existing .def file instead of auto-generating
# one with all exports in it (win32 only).
#
# The module Makefile must also include
# $(top_builddir)/src/Makefile.global before including this file.
...
...
@@ -44,6 +44,7 @@
# install-lib install the libraries into $(libdir)
# uninstall-lib remove the libraries from $(libdir)
# clean-lib delete the static and shared libraries from the build dir
# maintainer-clean-lib delete .def files built for win32
#
# Since `all-lib' is the first rule in this file you probably want to
# have the `all' target before including this file. In the most simple
...
...
@@ -115,6 +116,10 @@ ifeq ($(PORTNAME), darwin)
endif
shlib
=
lib
$(NAME)
.
$(SO_MAJOR_VERSION)
.
$(SO_MINOR_VERSION)$(DLSUFFIX)
shlib_major
=
lib
$(NAME)
.
$(SO_MAJOR_VERSION)$(DLSUFFIX)
BUILD.exports
=
$(AWK)
'/^[^#]/ {printf "_%s\n",$$1}'
$<
>
$@
ifneq
(,$(SHLIB_EXPORTS))
exported_symbols_list
=
-exported_symbols_list
$(SHLIB_EXPORTS:%.txt=%.list)
endif
endif
ifeq
($(PORTNAME), openbsd)
...
...
@@ -186,7 +191,11 @@ ifeq ($(PORTNAME), irix)
endif
ifeq
($(PORTNAME), linux)
LINK.shared
=
$(COMPILER)
-shared
-Wl
,-soname,
$(soname)
$(exported_symbols_list)
LINK.shared
=
$(COMPILER)
-shared
-Wl
,-soname,
$(soname)
BUILD.exports
=
(
echo
'{ global:'
;
$(AWK)
'/^[^\#]/ {printf "%s;\n",$$1}'
$<
;
echo
' local: *; };'
)
>
$@
ifneq
(,$(SHLIB_EXPORTS))
LINK.shared
+=
-Wl
,--version-script
=
$(SHLIB_EXPORTS:%.txt=%.list)
endif
endif
ifeq
($(PORTNAME), solaris)
...
...
@@ -293,6 +302,19 @@ ifneq ($(shlib), $(shlib_bare))
$(LN_S)
$(shlib)
$(shlib_bare)
endif
# Where possible, restrict the symbols exported by the library to just the
# official list, so as to avoid unintentional ABI changes. On recent Darwin
# this also quiets multiply-defined-symbol warnings in programs that use
# libpgport along with libpq.
ifneq
(,$(SHLIB_EXPORTS))
ifdef
BUILD.exports
$(shlib)
:
$(SHLIB_EXPORTS:%.txt=%.list)
$(SHLIB_EXPORTS
:
%.txt=%.list): %.list: %.txt
$(BUILD.exports)
endif
endif
else
# PORTNAME == aix
# AIX case
...
...
@@ -303,7 +325,7 @@ $(shlib) lib$(NAME).a: $(OBJS)
$(COMPILER)
$(LDFLAGS_NO_L)
$(LDFLAGS_SL)
-o
$(shlib)
lib
$(NAME)
.a
-Wl
,-bE:lib
$(NAME)$(EXPSUFF)
$(SHLIB_LINK)
rm
-f
lib
$(NAME)
.a
$(AR)
$(AROPT)
lib
$(NAME)
.a
$(shlib)
endif
# PORTNAME == aix
else
# PORTNAME == cygwin
...
...
@@ -323,6 +345,10 @@ endif # PORTNAME == cygwin
else
# PORTNAME == win32
ifneq
(,$(SHLIB_EXPORTS))
DLL_DEFFILE
=
lib
$(NAME)
dll.def
endif
# win32 case
$(shlib) lib$(NAME).a
:
$(OBJS)
ifndef
DLL_DEFFILE
...
...
@@ -339,6 +365,46 @@ endif # PORTNAME == win32
endif
# enable_shared
# We need several not-quite-identical variants of .DEF files to build
# 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.
ifneq
(,$(SHLIB_EXPORTS))
all
:
def-files
distprep
:
def-files
.PHONY
:
def-files
def-files
:
$(srcdir)/lib$(NAME)dll.def $(srcdir)/lib$(NAME)ddll.def $(srcdir)/blib$(NAME)dll.def
UC_NAME
=
$(
shell
echo
$(NAME)
|
tr
'abcdefghijklmnopqrstuvwxyz'
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
)
$(srcdir)/lib$(NAME)dll.def
:
$(SHLIB_EXPORTS)
echo
'; DEF file for MS VC++'
>
$@
echo
'LIBRARY LIB
$(UC_NAME)
'
>>
$@
echo
'EXPORTS'
>>
$@
sed
-e
'/^#/d'
-e
's/^\(.* \)\([0-9][0-9]*\)/ \1@ \2/'
$<
>>
$@
$(srcdir)/lib$(NAME)ddll.def
:
$(SHLIB_EXPORTS)
echo
'; DEF file for MS VC++'
>
$@
echo
'LIBRARY LIB
$(UC_NAME)
D'
>>
$@
echo
'EXPORTS'
>>
$@
sed
-e
'/^#/d'
-e
's/^\(.* \)\([0-9][0-9]*\)/ \1@ \2/'
$<
>>
$@
$(srcdir)/blib$(NAME)dll.def
:
$(SHLIB_EXPORTS)
echo
'; DEF file for Borland C++ Builder'
>
$@
echo
'LIBRARY BLIB
$(UC_NAME)
'
>>
$@
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/ *$$//'
>>
$@
endif
# SHLIB_EXPORTS
##
## INSTALL
##
...
...
@@ -398,7 +464,7 @@ endif # enable_shared
clean-lib
:
rm
-f
lib
$(NAME)
.a
ifeq
($(enable_shared), yes)
rm
-f
$(shlib_bare)
$(shlib_major)
$(shlib)
rm
-f
$(shlib_bare)
$(shlib_major)
$(shlib)
$(SHLIB_EXPORTS:%.txt=%.list)
ifdef
EXPSUFF
rm
-f
lib
$(NAME)$(EXPSUFF)
endif
...
...
@@ -410,3 +476,8 @@ endif
ifeq
($(PORTNAME), win32)
rm
-f
$(NAME).dll
$(NAME).def
endif
ifneq
(,$(SHLIB_EXPORTS))
maintainer-clean-lib
:
rm
-f
$(srcdir)
/lib
$(NAME)
dll.def
$(srcdir)
/lib
$(NAME)
ddll.def
$(srcdir)
/blib
$(NAME)
dll.def
endif
src/interfaces/ecpg/compatlib/Makefile
View file @
a1d5d857
...
...
@@ -5,7 +5,7 @@
# Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
# Portions Copyright (c) 1994, Regents of the University of California
#
# $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/Makefile,v 1.3
8 2008/02/13 18:14:46 momjian
Exp $
# $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/Makefile,v 1.3
9 2008/02/26 06:41:23 petere
Exp $
#
#-------------------------------------------------------------------------
...
...
@@ -25,16 +25,14 @@ override CFLAGS += $(PTHREAD_CFLAGS)
SHLIB_LINK
=
-L
../ecpglib
-lecpg
-L
../pgtypeslib
-lpgtypes
$(libpq)
-lm
\
$(PTHREAD_LIBS)
SHLIB_EXPORTS
=
exports.txt
# Need to recompile any libpgport object files
LIBS
:=
$(
filter-out
-lpgport
,
$(LIBS)
)
OBJS
=
informix.o
$(
filter
snprintf.o,
$(LIBOBJS)
)
ifeq
($(PORTNAME), win32)
DLL_DEFFILE
=
libecpg_compatdll.def
endif
all
:
def-files all-lib
all
:
all-lib
# Shared library stuff
include
$(top_srcdir)/src/Makefile.shlib
...
...
@@ -42,55 +40,6 @@ include $(top_srcdir)/src/Makefile.shlib
snprintf.c
:
% : $(top_srcdir)/src/port/%
rm
-f
$@
&&
$(LN_S)
$<
.
# We need several not-quite-identical variants of .DEF files to build libecpg
# 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.
distprep
:
def-files
.PHONY
:
def-files
def-files
:
$(srcdir)/libecpg_compatdll.def $(srcdir)/blibecpg_compatdll.def
$(srcdir)/libecpg_compatdll.def
:
exports.txt
echo
'; DEF file for MS VC++'
>
$@
echo
'LIBRARY LIBECPG_COMPAT'
>>
$@
echo
'EXPORTS'
>>
$@
sed
-e
'/^#/d'
-e
's/^\(.* \)\([0-9][0-9]*\)/ \1@ \2/'
<
$<
>>
$@
$(srcdir)/blibecpg_compatdll.def
:
exports.txt
echo
'; DEF file for Borland C++ Builder'
>
$@
echo
'LIBRARY BLIBECPG_COMPAT'
>>
$@
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/ *$$//'
>>
$@
# Where possible, restrict the symbols exported by the library to just the
# official list, so as to avoid unintentional ABI changes.
ifeq
($(PORTNAME), darwin)
$(shlib)
:
exports.list
exports.list
:
exports.txt
$(AWK)
'/^[^#]/ {printf "_%s\n",$$1}'
$<
>
$@
exported_symbols_list
=
-exported_symbols_list
exports.list
endif
ifeq
($(PORTNAME), linux)
$(shlib)
:
exports.list
exports.list
:
exports.txt
echo
'{ global:'
>
$@
$(AWK)
'/^[^#]/ {printf "%s;\n",$$1}'
$<
>>
$@
echo
' local: *; };'
>>
$@
exported_symbols_list
=
-Wl
,--version-script
=
exports.list
endif
install
:
all installdirs install-lib
installdirs
:
...
...
@@ -99,7 +48,6 @@ installdirs:
uninstall
:
uninstall-lib
clean distclean
:
clean-lib
rm
-f
$(OBJS)
snprintf.c
exports.list
rm
-f
$(OBJS)
snprintf.c
maintainer-clean
:
distclean
rm
-f
$(srcdir)
/libecpg_compatdll.def
$(srcdir)
/blibecpg_compatdll.def
maintainer-clean
:
distclean maintainer-clean-lib
src/interfaces/ecpg/ecpglib/Makefile
View file @
a1d5d857
...
...
@@ -5,7 +5,7 @@
# Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
# Portions Copyright (c) 1994, Regents of the University of California
#
# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.5
5 2008/02/13 18:14:46 momjian
Exp $
# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.5
6 2008/02/26 06:41:24 petere
Exp $
#
#-------------------------------------------------------------------------
...
...
@@ -36,13 +36,14 @@ endif
SHLIB_LINK
=
-L
../pgtypeslib
-lpgtypes
$(libpq)
-lm
$(PTHREAD_LIBS)
SHLIB_EXPORTS
=
exports.txt
ifeq
($(PORTNAME), win32)
# Link to shfolder.dll instead of shell32.dll
SHLIB_LINK
+=
-lshfolder
DLL_DEFFILE
=
libecpgdll.def
endif
all
:
def-files
all-lib
all
:
all-lib
# Shared library stuff
include
$(top_srcdir)/src/Makefile.shlib
...
...
@@ -60,55 +61,6 @@ path.o: path.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
# We need several not-quite-identical variants of .DEF files to build libecpg
# 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.
distprep
:
def-files
.PHONY
:
def-files
def-files
:
$(srcdir)/libecpgdll.def $(srcdir)/blibecpgdll.def
$(srcdir)/libecpgdll.def
:
exports.txt
echo
'; DEF file for MS VC++'
>
$@
echo
'LIBRARY LIBECPG'
>>
$@
echo
'EXPORTS'
>>
$@
sed
-e
'/^#/d'
-e
's/^\(.* \)\([0-9][0-9]*\)/ \1@ \2/'
<
$<
>>
$@
$(srcdir)/blibecpgdll.def
:
exports.txt
echo
'; DEF file for Borland C++ Builder'
>
$@
echo
'LIBRARY BLIBECPG'
>>
$@
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/ *$$//'
>>
$@
# Where possible, restrict the symbols exported by the library to just the
# official list, so as to avoid unintentional ABI changes.
ifeq
($(PORTNAME), darwin)
$(shlib)
:
exports.list
exports.list
:
exports.txt
$(AWK)
'/^[^#]/ {printf "_%s\n",$$1}'
$<
>
$@
exported_symbols_list
=
-exported_symbols_list
exports.list
endif
ifeq
($(PORTNAME), linux)
$(shlib)
:
exports.list
exports.list
:
exports.txt
echo
'{ global:'
>
$@
$(AWK)
'/^[^#]/ {printf "%s;\n",$$1}'
$<
>>
$@
echo
' local: *; };'
>>
$@
exported_symbols_list
=
-Wl
,--version-script
=
exports.list
endif
install
:
all installdirs install-lib
installdirs
:
...
...
@@ -118,7 +70,6 @@ uninstall: uninstall-lib
clean distclean
:
clean-lib
rm
-f
$(OBJS)
rm
-f
path.c pgstrcasecmp.c snprintf.c strlcpy.c thread.c
exports.list
rm
-f
path.c pgstrcasecmp.c snprintf.c strlcpy.c thread.c
maintainer-clean
:
distclean
rm
-f
$(srcdir)
/libecpgdll.def
$(srcdir)
/blibecpgdll.def
maintainer-clean
:
distclean maintainer-clean-lib
src/interfaces/ecpg/pgtypeslib/Makefile
View file @
a1d5d857
...
...
@@ -5,7 +5,7 @@
# Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
# Portions Copyright (c) 1994, Regents of the University of California
#
# $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/Makefile,v 1.4
0 2008/02/13 18:14:46 momjian
Exp $
# $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/Makefile,v 1.4
1 2008/02/26 06:41:24 petere
Exp $
#
#-------------------------------------------------------------------------
...
...
@@ -27,68 +27,17 @@ LIBS := $(filter-out -lpgport, $(LIBS))
SHLIB_LINK
+=
-lm
SHLIB_EXPORTS
=
exports.txt
OBJS
=
numeric.o datetime.o common.o dt_common.o timestamp.o interval.o
\
pgstrcasecmp.o
\
$(
filter
rint.o snprintf.o,
$(LIBOBJS)
)
ifeq
($(PORTNAME), win32)
DLL_DEFFILE
=
libpgtypesdll.def
endif
all
:
def-files all-lib
all
:
all-lib
# Shared library stuff
include
$(top_srcdir)/src/Makefile.shlib
# We need several not-quite-identical variants of .DEF files to build libecpg
# 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.
distprep
:
def-files
.PHONY
:
def-files
def-files
:
$(srcdir)/libpgtypesdll.def $(srcdir)/blibpgtypesdll.def
$(srcdir)/libpgtypesdll.def
:
exports.txt
echo
'; DEF file for MS VC++'
>
$@
echo
'LIBRARY LIBPGTYPES'
>>
$@
echo
'EXPORTS'
>>
$@
sed
-e
'/^#/d'
-e
's/^\(.* \)\([0-9][0-9]*\)/ \1@ \2/'
<
$<
>>
$@
$(srcdir)/blibpgtypesdll.def
:
exports.txt
echo
'; DEF file for Borland C++ Builder'
>
$@
echo
'LIBRARY BLIBPGTYPES'
>>
$@
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/ *$$//'
>>
$@
# Where possible, restrict the symbols exported by the library to just the
# official list, so as to avoid unintentional ABI changes.
ifeq
($(PORTNAME), darwin)
$(shlib)
:
exports.list
exports.list
:
exports.txt
$(AWK)
'/^[^#]/ {printf "_%s\n",$$1}'
$<
>
$@
exported_symbols_list
=
-exported_symbols_list
exports.list
endif
ifeq
($(PORTNAME), linux)
$(shlib)
:
exports.list
exports.list
:
exports.txt
echo
'{ global:'
>
$@
$(AWK)
'/^[^#]/ {printf "%s;\n",$$1}'
$<
>>
$@
echo
' local: *; };'
>>
$@
exported_symbols_list
=
-Wl
,--version-script
=
exports.list
endif
# We use some port 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,
...
...
@@ -105,7 +54,6 @@ installdirs:
uninstall
:
uninstall-lib
clean distclean
:
clean-lib
rm
-f
$(OBJS)
pgstrcasecmp.c rint.c snprintf.c
exports.list
rm
-f
$(OBJS)
pgstrcasecmp.c rint.c snprintf.c
maintainer-clean
:
distclean
rm
-f
$(srcdir)
/libpgtypesdll.def
$(srcdir)
/blibpgtypesdll.def
maintainer-clean
:
distclean maintainer-clean-lib
src/interfaces/libpq/Makefile
View file @
a1d5d857
...
...
@@ -5,7 +5,7 @@
# Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
# Portions Copyright (c) 1994, Regents of the University of California
#
# $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.16
0 2008/02/13 18:14:46 momjian
Exp $
# $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.16
1 2008/02/26 06:41:24 petere
Exp $
#
#-------------------------------------------------------------------------
...
...
@@ -42,7 +42,6 @@ endif
ifeq
($(PORTNAME), win32)
OBJS
+=
win32.o pgsleep.o libpqrc.o
DLL_DEFFILE
=
libpqdll.def
libpqrc.o
:
libpq.rc
windres
-i
libpq.rc
-o
libpqrc.o
...
...
@@ -65,8 +64,9 @@ ifeq ($(PORTNAME), win32)
SHLIB_LINK
+=
-lshfolder
-lwsock32
-lws2_32
-lsecur32
$(
filter
-leay32
-lssleay32
-lcomerr32
-lkrb5_32
,
$(LIBS)
)
endif
SHLIB_EXPORTS
=
exports.txt
all
:
def-files
$(srcdir)/libpq.rc all-lib
all
:
$(srcdir)/libpq.rc all-lib
# Shared library stuff
include
$(top_srcdir)/src/Makefile.shlib
...
...
@@ -90,62 +90,7 @@ encnames.c wchar.c : % : $(backend_src)/utils/mb/%
rm
-f
$@
&&
$(LN_S)
$<
.
# 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.
distprep
:
def-files $(srcdir)/libpq.rc
.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
'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
'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
'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/ *$$//'
>>
$@
# Where possible, restrict the symbols exported by the library to just the
# official list, so as to avoid unintentional ABI changes. On recent Darwin
# this also quiets multiply-defined-symbol warnings in programs that use
# libpgport along with libpq.
ifeq
($(PORTNAME), darwin)
$(shlib)
:
exports.list
exports.list
:
exports.txt
$(AWK)
'/^[^#]/ {printf "_%s\n",$$1}'
$<
>
$@
exported_symbols_list
=
-exported_symbols_list
exports.list
endif
ifeq
($(PORTNAME), linux)
$(shlib)
:
exports.list
exports.list
:
exports.txt
echo
'{ global:'
>
$@
$(AWK)
'/^[^#]/ {printf "%s;\n",$$1}'
$<
>>
$@
echo
' local: *; };'
>>
$@
exported_symbols_list
=
-Wl
,--version-script
=
exports.list
endif
distprep
:
$(srcdir)/libpq.rc
# depend on Makefile.global to force rebuild on re-run of configure
$(srcdir)/libpq.rc
:
libpq.rc.in $(top_builddir)/src/Makefile.global
...
...
@@ -169,9 +114,9 @@ uninstall: uninstall-lib
rm
-f
'
$(DESTDIR)$(includedir)
/libpq-fe.h'
'
$(DESTDIR)$(includedir_internal)
/libpq-int.h'
'
$(DESTDIR)$(includedir_internal)
/pqexpbuffer.h'
'
$(DESTDIR)$(datadir)
/pg_service.conf.sample'
clean distclean
:
clean-lib
rm
-f
$(OBJS)
pg_config_paths.h crypt.c getaddrinfo.c inet_aton.c noblock.c open.c pgstrcasecmp.c snprintf.c strerror.c strlcpy.c thread.c md5.c ip.c encnames.c wchar.c win32error.c pgsleep.c pthread.h
exports.list
rm
-f
$(OBJS)
pg_config_paths.h crypt.c getaddrinfo.c inet_aton.c noblock.c open.c pgstrcasecmp.c snprintf.c strerror.c strlcpy.c thread.c md5.c ip.c encnames.c wchar.c win32error.c pgsleep.c pthread.h
# Might be left over from a Win32 client-only build
rm
-f
pg_config_paths.h
maintainer-clean
:
distclean
rm
-f
$(srcdir)
/libpq
dll.def
$(srcdir)
/libpqddll.def
$(srcdir)
/blibpqdll.def
$(srcdir)
/libpq
.rc
maintainer-clean
:
distclean
maintainer-clean-lib
rm
-f
$(srcdir)
/libpq.rc
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment