mirror of
https://github.com/postgres/postgres.git
synced 2025-04-20 00:42:27 +03:00
Remove libpq.rc, use win32ver.rc for libpq
For historical reasons, libpq used a separate libpq.rc file for the Windows builds while all other components use a common file win32ver.rc. With a bit of tweaking, the libpq build can also use the win32ver.rc file. This removes a bit of duplicative code. Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://www.postgresql.org/message-id/flat/ad505e61-a923-e114-9f38-9867d161073f@2ndquadrant.com
This commit is contained in:
parent
ac5bdf6261
commit
16a4a3d59c
@ -9,7 +9,6 @@
|
|||||||
PGFILEDESC = "Eventlog message formatter"
|
PGFILEDESC = "Eventlog message formatter"
|
||||||
PGAPPICON=win32
|
PGAPPICON=win32
|
||||||
|
|
||||||
PGFILESHLIB = 1
|
|
||||||
subdir = src/bin/pgevent
|
subdir = src/bin/pgevent
|
||||||
top_builddir = ../../..
|
top_builddir = ../../..
|
||||||
include $(top_builddir)/src/Makefile.global
|
include $(top_builddir)/src/Makefile.global
|
||||||
|
1
src/interfaces/libpq/.gitignore
vendored
1
src/interfaces/libpq/.gitignore
vendored
@ -1,5 +1,4 @@
|
|||||||
/exports.list
|
/exports.list
|
||||||
/libpq.rc
|
|
||||||
# .c files that are symlinked in from elsewhere
|
# .c files that are symlinked in from elsewhere
|
||||||
/encnames.c
|
/encnames.c
|
||||||
/wchar.c
|
/wchar.c
|
||||||
|
@ -14,6 +14,8 @@ top_builddir = ../../..
|
|||||||
include $(top_builddir)/src/Makefile.global
|
include $(top_builddir)/src/Makefile.global
|
||||||
|
|
||||||
|
|
||||||
|
PGFILEDESC = "PostgreSQL Access Library"
|
||||||
|
|
||||||
# shared library parameters
|
# shared library parameters
|
||||||
NAME= pq
|
NAME= pq
|
||||||
SO_MAJOR_VERSION= 5
|
SO_MAJOR_VERSION= 5
|
||||||
@ -28,6 +30,7 @@ endif
|
|||||||
# the conditional additions of files to OBJS, update Mkvcbuild.pm to match.
|
# the conditional additions of files to OBJS, update Mkvcbuild.pm to match.
|
||||||
|
|
||||||
OBJS = \
|
OBJS = \
|
||||||
|
$(WIN32RES) \
|
||||||
fe-auth-scram.o \
|
fe-auth-scram.o \
|
||||||
fe-connect.o \
|
fe-connect.o \
|
||||||
fe-exec.o \
|
fe-exec.o \
|
||||||
@ -65,12 +68,8 @@ endif
|
|||||||
|
|
||||||
ifeq ($(PORTNAME), win32)
|
ifeq ($(PORTNAME), win32)
|
||||||
OBJS += \
|
OBJS += \
|
||||||
libpqrc.o \
|
|
||||||
win32.o
|
win32.o
|
||||||
|
|
||||||
libpqrc.o: libpq.rc
|
|
||||||
$(WINDRES) -i $< -o $@
|
|
||||||
|
|
||||||
ifeq ($(enable_thread_safety), yes)
|
ifeq ($(enable_thread_safety), yes)
|
||||||
OBJS += pthread-win32.o
|
OBJS += pthread-win32.o
|
||||||
endif
|
endif
|
||||||
@ -113,12 +112,6 @@ encnames.c wchar.c: % : $(backend_src)/utils/mb/%
|
|||||||
rm -f $@ && $(LN_S) $< .
|
rm -f $@ && $(LN_S) $< .
|
||||||
|
|
||||||
|
|
||||||
libpq.rc: libpq.rc.in
|
|
||||||
sed -e 's/\(VERSION.*\),0 *$$/\1,'`date '+%y%j' | sed 's/^0*//'`'/' $< >$@
|
|
||||||
|
|
||||||
# Depend on Makefile.global to force rebuild on re-run of configure.
|
|
||||||
libpq.rc: $(top_builddir)/src/Makefile.global
|
|
||||||
|
|
||||||
# Make dependencies on pg_config_paths.h visible, too.
|
# Make dependencies on pg_config_paths.h visible, too.
|
||||||
fe-connect.o: fe-connect.c $(top_builddir)/src/port/pg_config_paths.h
|
fe-connect.o: fe-connect.c $(top_builddir)/src/port/pg_config_paths.h
|
||||||
fe-misc.o: fe-misc.c $(top_builddir)/src/port/pg_config_paths.h
|
fe-misc.o: fe-misc.c $(top_builddir)/src/port/pg_config_paths.h
|
||||||
@ -148,7 +141,7 @@ uninstall: uninstall-lib
|
|||||||
|
|
||||||
clean distclean: clean-lib
|
clean distclean: clean-lib
|
||||||
$(MAKE) -C test $@
|
$(MAKE) -C test $@
|
||||||
rm -f $(OBJS) pthread.h libpq.rc
|
rm -f $(OBJS) pthread.h
|
||||||
# Might be left over from a Win32 client-only build
|
# Might be left over from a Win32 client-only build
|
||||||
rm -f pg_config_paths.h
|
rm -f pg_config_paths.h
|
||||||
# Remove files we (may have) symlinked in from other places
|
# Remove files we (may have) symlinked in from other places
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
#include <winver.h>
|
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
|
||||||
FILEVERSION 13,0,0,0
|
|
||||||
PRODUCTVERSION 13,0,0,0
|
|
||||||
FILEFLAGSMASK 0x3fL
|
|
||||||
FILEFLAGS 0
|
|
||||||
FILEOS VOS__WINDOWS32
|
|
||||||
FILETYPE VFT_DLL
|
|
||||||
FILESUBTYPE 0x0L
|
|
||||||
BEGIN
|
|
||||||
BLOCK "StringFileInfo"
|
|
||||||
BEGIN
|
|
||||||
BLOCK "040904B0"
|
|
||||||
BEGIN
|
|
||||||
VALUE "CompanyName", "\0"
|
|
||||||
VALUE "FileDescription", "PostgreSQL Access Library\0"
|
|
||||||
VALUE "FileVersion", "13.0\0"
|
|
||||||
VALUE "InternalName", "libpq\0"
|
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2020\0"
|
|
||||||
VALUE "LegalTrademarks", "\0"
|
|
||||||
VALUE "OriginalFilename", "libpq.dll\0"
|
|
||||||
VALUE "ProductName", "PostgreSQL\0"
|
|
||||||
VALUE "ProductVersion", "13.0\0"
|
|
||||||
END
|
|
||||||
END
|
|
||||||
BLOCK "VarFileInfo"
|
|
||||||
BEGIN
|
|
||||||
VALUE "Translation", 0x409, 1200
|
|
||||||
END
|
|
||||||
END
|
|
@ -56,11 +56,7 @@ endif
|
|||||||
# Build rules to add versioninfo resources to win32 binaries
|
# Build rules to add versioninfo resources to win32 binaries
|
||||||
|
|
||||||
WIN32RES += win32ver.o
|
WIN32RES += win32ver.o
|
||||||
ifeq ($(PGFILESHLIB),1)
|
PGFTYPE = $(if $(shlib),VFT_DLL,VFT_APP)
|
||||||
PGFTYPE = VFT_DLL
|
|
||||||
else
|
|
||||||
PGFTYPE = VFT_APP
|
|
||||||
endif
|
|
||||||
ifneq (,$(PGAPPICON))
|
ifneq (,$(PGAPPICON))
|
||||||
PGICOSTR = $(subst /,\/,IDI_ICON ICON \"$(top_builddir)/src/port/$(PGAPPICON).ico\")
|
PGICOSTR = $(subst /,\/,IDI_ICON ICON \"$(top_builddir)/src/port/$(PGAPPICON).ico\")
|
||||||
endif
|
endif
|
||||||
@ -71,7 +67,16 @@ endif
|
|||||||
# signal win32ver.rc availability to the dll build rule below.
|
# signal win32ver.rc availability to the dll build rule below.
|
||||||
ifndef PGXS
|
ifndef PGXS
|
||||||
win32ver.rc: $(top_srcdir)/src/port/win32ver.rc
|
win32ver.rc: $(top_srcdir)/src/port/win32ver.rc
|
||||||
sed -e 's;FILEDESC;$(PGFILEDESC);' -e 's;VFT_APP;$(PGFTYPE);' -e 's;_ICO_;$(PGICOSTR);' -e 's;\(VERSION.*\),0 *$$;\1,'`date '+%y%j' | sed 's/^0*//'`';' $< >$@
|
sed -e 's;FILEDESC;$(PGFILEDESC);' \
|
||||||
|
-e 's;VFT_APP;$(PGFTYPE);' \
|
||||||
|
-e 's;_ICO_;$(PGICOSTR);' \
|
||||||
|
-e 's;\(VERSION.*\),0 *$$;\1,'`date '+%y%j' | sed 's/^0*//'`';' \
|
||||||
|
-e '/_INTERNAL_NAME_/$(if $(shlib),s;_INTERNAL_NAME_;"$(basename $(shlib))";,d)' \
|
||||||
|
-e '/_ORIGINAL_NAME_/$(if $(shlib),s;_ORIGINAL_NAME_;"$(shlib)";,d)' \
|
||||||
|
$< >$@
|
||||||
|
|
||||||
|
# Depend on Makefile.global to force rebuild on re-run of configure.
|
||||||
|
win32ver.rc: $(top_builddir)/src/Makefile.global
|
||||||
endif
|
endif
|
||||||
|
|
||||||
win32ver.o: win32ver.rc
|
win32ver.o: win32ver.rc
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
#include <winver.h>
|
#include <winver.h>
|
||||||
#include "pg_config.h"
|
#include "pg_config.h"
|
||||||
|
|
||||||
|
// https://docs.microsoft.com/en-us/windows/win32/menurc/versioninfo-resource
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 13,0,0,0
|
FILEVERSION 13,0,0,0
|
||||||
PRODUCTVERSION 13,0,0,0
|
PRODUCTVERSION 13,0,0,0
|
||||||
FILEFLAGSMASK 0x17L
|
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
||||||
FILEFLAGS 0x0L
|
FILEFLAGS 0x0L
|
||||||
FILEOS VOS_NT_WINDOWS32
|
FILEOS VOS_NT_WINDOWS32
|
||||||
FILETYPE VFT_APP
|
FILETYPE VFT_APP
|
||||||
@ -12,19 +14,21 @@ VS_VERSION_INFO VERSIONINFO
|
|||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "StringFileInfo"
|
BLOCK "StringFileInfo"
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "000004b0"
|
BLOCK "040904B0" // U.S. English, Unicode
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "PostgreSQL Global Development Group"
|
VALUE "CompanyName", "PostgreSQL Global Development Group"
|
||||||
VALUE "FileDescription", FILEDESC
|
VALUE "FileDescription", FILEDESC
|
||||||
VALUE "FileVersion", PG_VERSION
|
VALUE "FileVersion", PG_VERSION
|
||||||
|
VALUE "InternalName", _INTERNAL_NAME_
|
||||||
VALUE "LegalCopyright", "Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group. Portions Copyright (c) 1994, Regents of the University of California."
|
VALUE "LegalCopyright", "Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group. Portions Copyright (c) 1994, Regents of the University of California."
|
||||||
|
VALUE "OriginalFileName", _ORIGINAL_NAME_
|
||||||
VALUE "ProductName", "PostgreSQL"
|
VALUE "ProductName", "PostgreSQL"
|
||||||
VALUE "ProductVersion", PG_VERSION
|
VALUE "ProductVersion", PG_VERSION
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "Translation", 0x0, 1200
|
VALUE "Translation", 0x0409, 1200 // U.S. English, Unicode
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -66,6 +66,5 @@ sub wanted
|
|||||||
}
|
}
|
||||||
|
|
||||||
print "Manually update:\n";
|
print "Manually update:\n";
|
||||||
print " ./src/interfaces/libpq/libpq.rc.in in head\n";
|
|
||||||
print " ./doc/src/sgml/legal.sgml in head and back branches\n";
|
print " ./doc/src/sgml/legal.sgml in head and back branches\n";
|
||||||
print " ./COPYRIGHT in back branches\n";
|
print " ./COPYRIGHT in back branches\n";
|
||||||
|
@ -250,8 +250,6 @@ sub mkvcbuild
|
|||||||
$libpq->AddLibrary('ws2_32.lib');
|
$libpq->AddLibrary('ws2_32.lib');
|
||||||
$libpq->AddLibrary('wldap32.lib') if ($solution->{options}->{ldap});
|
$libpq->AddLibrary('wldap32.lib') if ($solution->{options}->{ldap});
|
||||||
$libpq->UseDef('src/interfaces/libpq/libpqdll.def');
|
$libpq->UseDef('src/interfaces/libpq/libpqdll.def');
|
||||||
$libpq->ReplaceFile('src/interfaces/libpq/libpqrc.c',
|
|
||||||
'src/interfaces/libpq/libpq.rc');
|
|
||||||
$libpq->AddReference($libpgcommon, $libpgport);
|
$libpq->AddReference($libpgcommon, $libpgport);
|
||||||
|
|
||||||
# The OBJS scraper doesn't know about ifdefs, so remove appropriate files
|
# The OBJS scraper doesn't know about ifdefs, so remove appropriate files
|
||||||
|
@ -338,6 +338,14 @@ sub AddResourceFile
|
|||||||
if ($self->{type} eq "dll")
|
if ($self->{type} eq "dll")
|
||||||
{
|
{
|
||||||
s/VFT_APP/VFT_DLL/gm;
|
s/VFT_APP/VFT_DLL/gm;
|
||||||
|
my $name = $self->{name};
|
||||||
|
s/_INTERNAL_NAME_/"$name"/;
|
||||||
|
s/_ORIGINAL_NAME_/"$name.dll"/;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/_INTERNAL_NAME_/ && next;
|
||||||
|
/_ORIGINAL_NAME_/ && next;
|
||||||
}
|
}
|
||||||
print $o $_;
|
print $o $_;
|
||||||
}
|
}
|
||||||
|
@ -668,27 +668,6 @@ sub GenerateFiles
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsNewer(
|
|
||||||
'src/interfaces/libpq/libpq.rc',
|
|
||||||
'src/interfaces/libpq/libpq.rc.in'))
|
|
||||||
{
|
|
||||||
print "Generating libpq.rc...\n";
|
|
||||||
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
|
|
||||||
localtime(time);
|
|
||||||
my $d = ($year - 100) . "$yday";
|
|
||||||
open(my $i, '<', 'src/interfaces/libpq/libpq.rc.in')
|
|
||||||
|| confess "Could not open libpq.rc.in";
|
|
||||||
open(my $o, '>', 'src/interfaces/libpq/libpq.rc')
|
|
||||||
|| confess "Could not open libpq.rc";
|
|
||||||
while (<$i>)
|
|
||||||
{
|
|
||||||
s/(VERSION.*),0/$1,$d/;
|
|
||||||
print $o $_;
|
|
||||||
}
|
|
||||||
close($i);
|
|
||||||
close($o);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsNewer('src/bin/psql/sql_help.h', 'src/bin/psql/create_help.pl'))
|
if (IsNewer('src/bin/psql/sql_help.h', 'src/bin/psql/create_help.pl'))
|
||||||
{
|
{
|
||||||
print "Generating sql_help.h...\n";
|
print "Generating sql_help.h...\n";
|
||||||
|
@ -89,7 +89,6 @@ if %DIST%==1 if exist src\backend\replication\syncrep_scanner.c del /q src\backe
|
|||||||
if %DIST%==1 if exist src\backend\replication\syncrep_gram.c del /q src\backend\replication\syncrep_gram.c
|
if %DIST%==1 if exist src\backend\replication\syncrep_gram.c del /q src\backend\replication\syncrep_gram.c
|
||||||
|
|
||||||
|
|
||||||
if exist src\interfaces\libpq\libpq.rc del /q src\interfaces\libpq\libpq.rc
|
|
||||||
if exist src\interfaces\libpq\libpqdll.def del /q src\interfaces\libpq\libpqdll.def
|
if exist src\interfaces\libpq\libpqdll.def del /q src\interfaces\libpq\libpqdll.def
|
||||||
if exist src\interfaces\ecpg\compatlib\compatlib.def del /q src\interfaces\ecpg\compatlib\compatlib.def
|
if exist src\interfaces\ecpg\compatlib\compatlib.def del /q src\interfaces\ecpg\compatlib\compatlib.def
|
||||||
if exist src\interfaces\ecpg\ecpglib\ecpglib.def del /q src\interfaces\ecpg\ecpglib\ecpglib.def
|
if exist src\interfaces\ecpg\ecpglib\ecpglib.def del /q src\interfaces\ecpg\ecpglib\ecpglib.def
|
||||||
|
@ -102,13 +102,6 @@ sed_file("configure.in",
|
|||||||
"-e 's/AC_INIT(\\[PostgreSQL\\], \\[[0-9a-z.]*\\]/AC_INIT([PostgreSQL], [$fullversion]/'"
|
"-e 's/AC_INIT(\\[PostgreSQL\\], \\[[0-9a-z.]*\\]/AC_INIT([PostgreSQL], [$fullversion]/'"
|
||||||
);
|
);
|
||||||
|
|
||||||
sed_file("src/interfaces/libpq/libpq.rc.in",
|
|
||||||
"-e 's/FILEVERSION [0-9]*,[0-9]*,[0-9]*,0/FILEVERSION $majorversion,0,$numericminor,0/' "
|
|
||||||
. "-e 's/PRODUCTVERSION [0-9]*,[0-9]*,[0-9]*,0/PRODUCTVERSION $majorversion,0,$numericminor,0/' "
|
|
||||||
. "-e 's/VALUE \"FileVersion\", \"[0-9.]*/VALUE \"FileVersion\", \"$numericversion/' "
|
|
||||||
. "-e 's/VALUE \"ProductVersion\", \"[0-9.]*/VALUE \"ProductVersion\", \"$numericversion/'"
|
|
||||||
);
|
|
||||||
|
|
||||||
sed_file("src/port/win32ver.rc",
|
sed_file("src/port/win32ver.rc",
|
||||||
"-e 's/FILEVERSION [0-9]*,[0-9]*,[0-9]*,0/FILEVERSION $majorversion,0,$numericminor,0/' "
|
"-e 's/FILEVERSION [0-9]*,[0-9]*,[0-9]*,0/FILEVERSION $majorversion,0,$numericminor,0/' "
|
||||||
. "-e 's/PRODUCTVERSION [0-9]*,[0-9]*,[0-9]*,0/PRODUCTVERSION $majorversion,0,$numericminor,0/'"
|
. "-e 's/PRODUCTVERSION [0-9]*,[0-9]*,[0-9]*,0/PRODUCTVERSION $majorversion,0,$numericminor,0/'"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user