Hi all There's an issue with MSVC builds on Windows where clean.bat deletes src\include\utils\fmgroids.h (as it should) but build.pl doesn't re-create it reliably.
It's created fine on the first build because Gen_fmgrtab.pl is called if src\backend\utils\fmgrtab.c is missing, which it is on first build. Generating it also generates src\backend\utils\fmgroids.h, which is copied to src\include. However, this copy isn't repeated after clean deletes src\include\utils\fmgroids.h . "clean dist" is fine, since it deletes fmgrtab.c too, causing the whole thing to be re-generated. The attached patch fixes the issue. -- Craig Ringer
>From 29aa537a8e5ef50f620e104eb98bca74538b5ac7 Mon Sep 17 00:00:00 2001 From: Craig Ringer <ring...@ringerc.id.au> Date: Thu, 6 Dec 2012 03:25:17 -0800 Subject: [PATCH] Win32: replace fmgroids.h if removed by clean.bat Fix a win32 build issue clean.bat was removing src/include/utils/fmgroids.h but build.bat wasn't replacing it if it'd already re-generated fmgrtab from pg_proc.h. Ensure that src/include/utils/fmgroids.h is always copied over if it's missing. --- src/tools/msvc/Solution.pm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index d7dbc5d..850a1df 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -275,6 +275,9 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY system( "perl -I ../catalog Gen_fmgrtab.pl ../../../src/include/catalog/pg_proc.h"); chdir('..\..\..'); + } + if (IsNewer('src\include\utils\fmgroids.h', 'src\backend\utils\fmgroids.h')) + { copyFile('src\backend\utils\fmgroids.h', 'src\include\utils\fmgroids.h'); } -- 1.7.11.msysgit.0
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers