Bruce Momjian wrote:
> We could do "date '+%y%j' to output 04349.  How many bits do we have for
> that last comma value?  This would work unless you put out two
> installers in the same day.  However, this would not work for VC and BCC
> because they don't have 'date'.  This would give us an ever-increasing
> value for each release.

Here is a sample patch for automatically adding the year/julian date to
the libpq.rc file.  It requires moving libpq.rc to libpq.rc.in and then
making the Makefile modifications attached.  I also included how
libpq.rc changes so you can see the numbers added.

I have used the existing *.def build method but for a final version I
think I have to make it its own rule so it is recreated on every MinGW
build rather than just when exports.txt changes or a package prepdist
build is made.  VC and BCC aleady require a prepdist build so we should
be OK with having this built at that time always.  I can see pginstaller
building from CVS and would like to make sure it has an updated day
stamp so I am thinking it should be recreated every time libpqrc.o is
created.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: src/interfaces/libpq/Makefile
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/Makefile,v
retrieving revision 1.122
diff -c -c -r1.122 Makefile
*** src/interfaces/libpq/Makefile       20 Nov 2004 21:13:06 -0000      1.122
--- src/interfaces/libpq/Makefile       15 Dec 2004 04:31:09 -0000
***************
*** 92,98 ****
  
  .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++' > $@
--- 92,99 ----
  
  .PHONY: def-files
  
! def-files: $(srcdir)/libpqdll.def $(srcdir)/libpqddll.def \
!       $(srcdir)/blibpqdll.def $(srcdir)/libpq.rc
  
  $(srcdir)/libpqdll.def: exports.txt
        echo '; DEF file for MS VC++' > $@
***************
*** 118,123 ****
--- 119,128 ----
        echo '; Aliases for MS compatible names' >> $@
        sed -e '/^#/d' -e 's/^\(.* \)\([0-9][0-9]*\)/    \1= _\1/' < $< | sed 
's/ *$$//' >> $@
  
+ $(srcdir)/libpq.rc: libpq.rc.in
+       sed -e 's/\(VERSION.*\)0 *$$/\1'`date '+%y%j'`'/' \
+       -e 's/\(Version.*\)0\\/\1'`date '+%y%j'`'\\/' < $< > $@
+ 
  
  ifneq ($(PTHREAD_H_WIN32), "")
  pthread.h: $(top_srcdir)/src/interfaces/libpq/pthread.h.win
***************
*** 145,148 ****
        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
  
  maintainer-clean: distclean
!       rm -f $(srcdir)/libpqdll.def $(srcdir)/libpqddll.def 
$(srcdir)/blibpqdll.def
--- 150,153 ----
        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
  
  maintainer-clean: distclean
!       rm -f $(srcdir)/libpqdll.def $(srcdir)/libpqddll.def 
$(srcdir)/blibpqdll.def $(srcdir)/libpq.rc
Index: src/interfaces/libpq/libpq.rc
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/libpq.rc,v
retrieving revision 1.12
diff -c -c -r1.12 libpq.rc
*** src/interfaces/libpq/libpq.rc       9 Aug 2004 01:55:42 -0000       1.12
--- src/interfaces/libpq/libpq.rc       15 Dec 2004 04:31:09 -0000
***************
*** 1,8 ****
  #include <winver.h>
  
  VS_VERSION_INFO VERSIONINFO
!  FILEVERSION 8,0,0,0
!  PRODUCTVERSION 8,0,0,0
   FILEFLAGSMASK 0x3fL
   FILEFLAGS 0
   FILEOS VOS__WINDOWS32
--- 1,8 ----
  #include <winver.h>
  
  VS_VERSION_INFO VERSIONINFO
!  FILEVERSION 8,0,0,04349
!  PRODUCTVERSION 8,0,0,04349
   FILEFLAGSMASK 0x3fL
   FILEFLAGS 0
   FILEOS VOS__WINDOWS32
***************
*** 15,27 ****
          BEGIN
              VALUE "CompanyName", "\0"
              VALUE "FileDescription", "PostgreSQL Access Library\0"
!             VALUE "FileVersion", "8, 0, 0, 0\0"
              VALUE "InternalName", "libpq\0"
              VALUE "LegalCopyright", "Copyright (C) 2004\0"
              VALUE "LegalTrademarks", "\0"
              VALUE "OriginalFilename", "libpq.dll\0"
              VALUE "ProductName", "PostgreSQL\0"
!             VALUE "ProductVersion", "8, 0, 0, 0\0"
          END
      END
      BLOCK "VarFileInfo"
--- 15,27 ----
          BEGIN
              VALUE "CompanyName", "\0"
              VALUE "FileDescription", "PostgreSQL Access Library\0"
!             VALUE "FileVersion", "8, 0, 0, 04349\0"
              VALUE "InternalName", "libpq\0"
              VALUE "LegalCopyright", "Copyright (C) 2004\0"
              VALUE "LegalTrademarks", "\0"
              VALUE "OriginalFilename", "libpq.dll\0"
              VALUE "ProductName", "PostgreSQL\0"
!             VALUE "ProductVersion", "8, 0, 0, 04349\0"
          END
      END
      BLOCK "VarFileInfo"
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to