From da67c919d9f16f9dda6be0198daa8a741ca6d3b1 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Tue, 5 Oct 2004 19:30:25 +0000
Subject: [PATCH] Add Win32 version info to client binaries.

Magnus Hagander
---
 src/Makefile.global.in               |  19 +++++++++++++++-
 src/backend/Makefile                 |   9 ++++----
 src/bin/initdb/Makefile              |   5 +++--
 src/bin/pg_controldata/Makefile      |   5 +++--
 src/bin/pg_ctl/Makefile              |   5 +++--
 src/bin/pg_dump/Makefile             |   7 +++---
 src/bin/pg_resetxlog/Makefile        |   5 +++--
 src/bin/pgevent/Makefile             |  10 +++++----
 src/bin/pgevent/pgmsgevent.rc        |   2 ++
 src/bin/psql/Makefile                |   6 ++++--
 src/bin/scripts/Makefile             |   7 +++---
 src/interfaces/ecpg/preproc/Makefile |   8 ++++---
 src/port/win32.ico                   | Bin 0 -> 22486 bytes
 src/port/win32ver.rc                 |  31 +++++++++++++++++++++++++++
 14 files changed, 91 insertions(+), 28 deletions(-)
 create mode 100644 src/port/win32.ico
 create mode 100644 src/port/win32ver.rc

diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 9eea09d78a1..c981e7ee15a 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -1,5 +1,5 @@
 # -*-makefile-*-
-# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.196 2004/10/01 02:06:52 neilc Exp $
+# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.197 2004/10/05 19:30:19 momjian Exp $
 
 #------------------------------------------------------------------------------
 # All PostgreSQL makefiles include this file and use the variables it sets,
@@ -386,6 +386,23 @@ TAS         = @TAS@
 %.bz2: %
 	$(BZIP2) -f $<
 
+ifeq ($(PORTNAME),win32)
+# Build rules to add versioninfo resources to win32 binaries
+WIN32RES += win32ver.o
+ifeq ($(PGFILESHLIB),1)
+PGFTYPE=VFT_DLL
+else
+PGFTYPE=VFT_APP
+endif
+ifneq (,$(PGAPPICON))
+PGICOSTR=$(subst /,\/,IDI_ICON ICON \"$(top_builddir)/src/port/$(PGAPPICON).ico\")
+endif
+win32ver.rc: $(top_builddir)/src/port/win32ver.rc
+	sed -e "s;FILEDESC;$(PGFILEDESC);" -e "s/VFT_APP/$(PGFTYPE)/" -e "s/_ICO_/$(PGICOSTR)/" $(top_builddir)/src/port/win32ver.rc > win32ver.rc	
+win32ver.o: win32ver.rc
+	windres -i win32ver.rc -o win32ver.o --include-dir=$(top_builddir)/src/include
+	rm -f win32ver.rc
+endif
 
 ifndef PGXS
 
diff --git a/src/backend/Makefile b/src/backend/Makefile
index 4279a9a19db..7f2b36071d4 100644
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -4,10 +4,11 @@
 #
 # Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/backend/Makefile,v 1.105 2004/10/04 13:43:54 momjian Exp $
+# $PostgreSQL: pgsql/src/backend/Makefile,v 1.106 2004/10/05 19:30:20 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "PostgreSQL Database Backend"
 subdir = src/backend
 top_builddir = ../..
 include $(top_builddir)/src/Makefile.global
@@ -60,11 +61,11 @@ endif # cygwin
 
 ifeq ($(PORTNAME), win32)
 
-postgres: $(OBJS) $(DLLINIT) postgres.def libpostgres.a
+postgres: $(OBJS) $(DLLINIT) postgres.def libpostgres.a $(WIN32RES)
 	$(DLLTOOL) --dllname $@$(X) --output-exp $@.exp --def postgres.def
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@$(X) -Wl,--base-file,$@.base $@.exp $(OBJS) $(LIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@$(X) -Wl,--base-file,$@.base $@.exp $(OBJS) $(WIN32RES) $(LIBS)
 	$(DLLTOOL) --dllname $@$(X) --base-file $@.base --output-exp $@.exp --def postgres.def
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@$(X) $@.exp $(OBJS) $(LIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@$(X) $@.exp $(OBJS) $(WIN32RES) $(LIBS)
 	rm -f $@.exp $@.base
 
 postgres.def: $(OBJS)
diff --git a/src/bin/initdb/Makefile b/src/bin/initdb/Makefile
index e69aa8892b0..5d7c64a5e55 100644
--- a/src/bin/initdb/Makefile
+++ b/src/bin/initdb/Makefile
@@ -5,17 +5,18 @@
 # Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/bin/initdb/Makefile,v 1.46 2004/10/04 18:05:53 momjian Exp $
+# $PostgreSQL: pgsql/src/bin/initdb/Makefile,v 1.47 2004/10/05 19:30:21 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "initdb - initialize a new database cluster"
 subdir = src/bin/initdb
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
 
 override CPPFLAGS := -DFRONTEND -I$(libpq_srcdir) $(CPPFLAGS)
 
-OBJS=	initdb.o
+OBJS=	initdb.o $(WIN32RES)
 
 all: submake-libpq submake-libpgport initdb
 
diff --git a/src/bin/pg_controldata/Makefile b/src/bin/pg_controldata/Makefile
index e5e85f47429..2b31e48ef20 100644
--- a/src/bin/pg_controldata/Makefile
+++ b/src/bin/pg_controldata/Makefile
@@ -4,17 +4,18 @@
 #
 # Copyright (c) 1998-2002, PostgreSQL Global Development Group
 #
-# $PostgreSQL: pgsql/src/bin/pg_controldata/Makefile,v 1.10 2004/10/04 13:43:55 momjian Exp $
+# $PostgreSQL: pgsql/src/bin/pg_controldata/Makefile,v 1.11 2004/10/05 19:30:21 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "pg_controldata - reads the data from pg_control"
 subdir = src/bin/pg_controldata
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
 
 override CPPFLAGS += -DFRONTEND
 
-OBJS= pg_controldata.o pg_crc.o
+OBJS= pg_controldata.o pg_crc.o $(WIN32RES)
 
 all: submake-libpgport pg_controldata
 
diff --git a/src/bin/pg_ctl/Makefile b/src/bin/pg_ctl/Makefile
index bd4ebe11743..429a2091c6b 100644
--- a/src/bin/pg_ctl/Makefile
+++ b/src/bin/pg_ctl/Makefile
@@ -5,17 +5,18 @@
 # Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/bin/pg_ctl/Makefile,v 1.17 2004/10/04 18:05:54 momjian Exp $
+# $PostgreSQL: pgsql/src/bin/pg_ctl/Makefile,v 1.18 2004/10/05 19:30:22 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "pg_ctl - starts/stops/restarts the PostgreSQL server"
 subdir = src/bin/pg_ctl
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
 
 override CPPFLAGS := -DFRONTEND -DDEF_PGPORT=$(DEF_PGPORT) -I$(libpq_srcdir) $(CPPFLAGS)
 
-OBJS=	pg_ctl.o
+OBJS=	pg_ctl.o $(WIN32RES)
 
 all: submake-libpq submake-libpgport pg_ctl
 
diff --git a/src/bin/pg_dump/Makefile b/src/bin/pg_dump/Makefile
index 4fe67b97ad6..fe260ca1fcc 100644
--- a/src/bin/pg_dump/Makefile
+++ b/src/bin/pg_dump/Makefile
@@ -5,10 +5,11 @@
 # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/bin/pg_dump/Makefile,v 1.55 2004/10/04 20:32:58 momjian Exp $
+# $PostgreSQL: pgsql/src/bin/pg_dump/Makefile,v 1.56 2004/10/05 19:30:23 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "pg_dump/pg_restore/pg_dumpall - backup and restore PostgreSQL databases"
 subdir = src/bin/pg_dump
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
@@ -17,7 +18,7 @@ override CPPFLAGS := -DFRONTEND -I$(libpq_srcdir) $(CPPFLAGS)
 
 OBJS=	pg_backup_archiver.o pg_backup_db.o pg_backup_custom.o \
 	pg_backup_files.o pg_backup_null.o pg_backup_tar.o \
-	dumputils.o
+	dumputils.o $(WIN32RES)
 
 EXTRA_OBJS = $(top_builddir)/src/backend/parser/keywords.o
 
@@ -35,7 +36,7 @@ pg_restore: pg_restore.o $(OBJS) $(libpq_builddir)/libpq.a
 	$(CC) $(CFLAGS) pg_restore.o $(OBJS) $(EXTRA_OBJS) $(libpq) $(LDFLAGS) $(LIBS) -o $@$(X)
 
 pg_dumpall: pg_dumpall.o dumputils.o $(libpq_builddir)/libpq.a
-	$(CC) $(CFLAGS) pg_dumpall.o dumputils.o $(EXTRA_OBJS) $(libpq) $(LDFLAGS) $(LIBS) -o $@$(X)
+	$(CC) $(CFLAGS) pg_dumpall.o dumputils.o $(EXTRA_OBJS) $(WIN32RES) $(libpq) $(LDFLAGS) $(LIBS) -o $@$(X)
 
 .PHONY: submake-backend
 submake-backend:
diff --git a/src/bin/pg_resetxlog/Makefile b/src/bin/pg_resetxlog/Makefile
index 76cc01c8194..daba6c13c7e 100644
--- a/src/bin/pg_resetxlog/Makefile
+++ b/src/bin/pg_resetxlog/Makefile
@@ -4,17 +4,18 @@
 #
 # Copyright (c) 1998-2002, PostgreSQL Global Development Group
 #
-# $PostgreSQL: pgsql/src/bin/pg_resetxlog/Makefile,v 1.12 2004/10/04 13:43:57 momjian Exp $
+# $PostgreSQL: pgsql/src/bin/pg_resetxlog/Makefile,v 1.13 2004/10/05 19:30:23 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "pg_resetxlog - reset PostgreSQL WAL log"
 subdir = src/bin/pg_resetxlog
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
 
 override CPPFLAGS += -DFRONTEND
 
-OBJS= pg_resetxlog.o pg_crc.o
+OBJS= pg_resetxlog.o pg_crc.o $(WIN32RES)
 
 all: submake-libpgport pg_resetxlog
 
diff --git a/src/bin/pgevent/Makefile b/src/bin/pgevent/Makefile
index adcdb27368b..141136a5248 100644
--- a/src/bin/pgevent/Makefile
+++ b/src/bin/pgevent/Makefile
@@ -6,6 +6,8 @@
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "Eventlog message formatter"
+PGFILESHLIB = 1
 subdir = src/bin/pgevent
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
@@ -20,19 +22,19 @@ install: all install-lib
 pgevent.dll: $(OBJS) pgevent.def
 	dllwrap --def pgevent.def -o $(NAME) $(OBJS)
 	
-pgmsgevent.o: pgmsgevent.rc
-	windres pgmsgevent.rc -o pgmsgevent.o
+pgmsgevent.o: pgmsgevent.rc win32ver.rc
+	windres pgmsgevent.rc -o pgmsgevent.o --include-dir=$(top_builddir)/src/include
 
 all-lib: $(NAME)
 
 install-lib: $(NAME)
 	$(INSTALL_STLIB) $< $(DESTDIR)$(libdir)/$<
-	
+
 uninstall-lib:
 	rm -f $(DESTDIR)$(libdir)/$(NAME)
 
 clean distclean:
-	rm -f $(OBJS) $(NAME)
+	rm -f $(OBJS) $(NAME) win32ver.rc
 
 clean-lib:
 	rm -f $(NAME)
diff --git a/src/bin/pgevent/pgmsgevent.rc b/src/bin/pgevent/pgmsgevent.rc
index 0885a897e6f..e69862e882c 100644
--- a/src/bin/pgevent/pgmsgevent.rc
+++ b/src/bin/pgevent/pgmsgevent.rc
@@ -1,2 +1,4 @@
 LANGUAGE 0x9,0x1
 1 11 MSG00001.bin
+
+#include "win32ver.rc"
diff --git a/src/bin/psql/Makefile b/src/bin/psql/Makefile
index 9f7a09c6fc1..e4af05f6310 100644
--- a/src/bin/psql/Makefile
+++ b/src/bin/psql/Makefile
@@ -5,10 +5,12 @@
 # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/bin/psql/Makefile,v 1.50 2004/10/04 20:36:10 momjian Exp $
+# $PostgreSQL: pgsql/src/bin/psql/Makefile,v 1.51 2004/10/05 19:30:24 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "psql - the PostgreSQL interactive terminal"
+PGAPPICON=win32
 subdir = src/bin/psql
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
@@ -19,7 +21,7 @@ override CPPFLAGS := -DFRONTEND -I$(libpq_srcdir) $(CPPFLAGS)
 
 OBJS=	command.o common.o help.o input.o stringutils.o mainloop.o copy.o \
 	startup.o prompt.o variables.o large_obj.o print.o describe.o \
-	psqlscan.o tab-complete.o mbprint.o
+	psqlscan.o tab-complete.o mbprint.o $(WIN32RES)
 
 FLEXFLAGS = -Cfe
 
diff --git a/src/bin/scripts/Makefile b/src/bin/scripts/Makefile
index 0eeabd38037..dbc7d0ade24 100644
--- a/src/bin/scripts/Makefile
+++ b/src/bin/scripts/Makefile
@@ -5,10 +5,11 @@
 # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/bin/scripts/Makefile,v 1.30 2004/10/04 18:05:55 momjian Exp $
+# $PostgreSQL: pgsql/src/bin/scripts/Makefile,v 1.31 2004/10/05 19:30:25 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "PostgreSQL utility"
 subdir = src/bin/scripts
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
@@ -19,7 +20,7 @@ override CPPFLAGS := -DFRONTEND -I$(top_srcdir)/src/bin/pg_dump -I$(top_srcdir)/
 
 all: submake-libpq submake-backend $(PROGRAMS)
 
-%: %.o
+%: %.o $(WIN32RES)
 	$(CC) $(CFLAGS) $^ $(libpq) $(LDFLAGS) $(LIBS) -o $@$(X)
 
 createdb: createdb.o common.o dumputils.o $(top_builddir)/src/backend/parser/keywords.o
@@ -61,5 +62,5 @@ uninstall:
 
 clean distclean maintainer-clean:
 	rm -f $(addsuffix $(X), $(PROGRAMS)) $(addsuffix .o, $(PROGRAMS))
-	rm -f common.o dumputils.o print.o mbprint.o
+	rm -f common.o dumputils.o print.o mbprint.o $(WIN32RES)
 	rm -f dumputils.c print.c mbprint.c
diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile
index 5efc17c4df6..fd3371ef2dd 100644
--- a/src/interfaces/ecpg/preproc/Makefile
+++ b/src/interfaces/ecpg/preproc/Makefile
@@ -4,10 +4,11 @@
 #
 # Copyright (c) 1998-2002, PostgreSQL Global Development Group
 #
-# $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/Makefile,v 1.108 2004/10/04 13:43:58 momjian Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/Makefile,v 1.109 2004/10/05 19:30:25 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
+PGFILEDESC = "ecpg - embedded SQL precompiler for C"
 subdir = src/interfaces/ecpg/preproc
 top_builddir = ../../../..
 include $(top_builddir)/src/Makefile.global
@@ -25,8 +26,9 @@ override CFLAGS += -Wno-error
 endif
 override CFLAGS += $(PTHREAD_CFLAGS)
 
-OBJS=	preproc.o type.o ecpg.o ecpg_keywords.o output.o\
-	keywords.o c_keywords.o ../ecpglib/typename.o descriptor.o variable.o
+OBJS=	preproc.o type.o ecpg.o ecpg_keywords.o output.o \
+	keywords.o c_keywords.o ../ecpglib/typename.o descriptor.o variable.o \
+	$(WIN32RES)
 
 all: submake-libpgport ecpg
 
diff --git a/src/port/win32.ico b/src/port/win32.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a58ee432b5037275c3f694b243efa0677017ddba
GIT binary patch
literal 22486
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

literal 0
HcmV?d00001

diff --git a/src/port/win32ver.rc b/src/port/win32ver.rc
new file mode 100644
index 00000000000..17bad793037
--- /dev/null
+++ b/src/port/win32ver.rc
@@ -0,0 +1,31 @@
+#include <winver.h>
+#include "pg_config.h"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION    7,4,999,999
+ PRODUCTVERSION 7,4,999,999
+ FILEFLAGSMASK  0x17L
+ FILEFLAGS      0x0L
+ FILEOS         VOS_NT_WINDOWS32
+ FILETYPE	VFT_APP
+ FILESUBTYPE    0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+  BLOCK "000004b0"
+  BEGIN
+   VALUE "CompanyName",      "PostgreSQL Global Development Group"
+   VALUE "FileDescription",  FILEDESC
+   VALUE "FileVersion",      PG_VERSION
+   VALUE "LegalCopyright", "Portions Copyright (C) 1996-2004 PostgreSQL Global Development Group. Portions Copyright (C) 1994, Regents of the University of California."
+   VALUE "ProductName",      "PostgreSQL"
+   VALUE "ProductVersion",   PG_VERSION
+  END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+  VALUE "Translation", 0x0, 1200
+ END
+END
+
+_ICO_
-- 
GitLab