aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tools/msvc/Solution.pm66
-rwxr-xr-xsrc/tools/msvc/clean.bat4
2 files changed, 45 insertions, 25 deletions
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 6b1207e6a8b..55566bfaceb 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -266,13 +266,18 @@ sub GenerateFiles
chdir('src/backend/utils');
my $pg_language_dat = '../../../src/include/catalog/pg_language.dat';
my $pg_proc_dat = '../../../src/include/catalog/pg_proc.dat';
- if ( IsNewer('fmgrtab.c', $pg_language_dat)
- || IsNewer('fmgrtab.c', $pg_proc_dat)
- || IsNewer('fmgrtab.c', '../../../src/include/access/transam.h'))
+ if ( IsNewer('fmgr-stamp', 'Gen_fmgrtab.pl')
+ || IsNewer('fmgr-stamp', '../catalog/Catalog.pm')
+ || IsNewer('fmgr-stamp', $pg_language_dat)
+ || IsNewer('fmgr-stamp', $pg_proc_dat)
+ || IsNewer('fmgr-stamp', '../../../src/include/access/transam.h'))
{
system(
"perl -I ../catalog Gen_fmgrtab.pl -I../../../src/include/ $pg_language_dat $pg_proc_dat"
);
+ open(my $f, '>', 'fmgr-stamp')
+ || confess "Could not touch fmgr-stamp";
+ close($f);
}
chdir('../../..');
@@ -468,36 +473,49 @@ EOF
|| croak "Could not find POSTGRES_BKI_DATA in Makefile\n";
my @bki_data = split /\s+/, $1;
+ my $need_genbki = 0;
foreach my $bki (@bki_srcs, @bki_data)
{
next if $bki eq "";
if (IsNewer(
- 'src/backend/catalog/postgres.bki',
+ 'src/backend/catalog/bki-stamp',
"src/include/catalog/$bki"))
{
- chdir('src/backend/catalog');
- my $bki_srcs = join(' ../../../src/include/catalog/', @bki_srcs);
- system(
- "perl genbki.pl --set-version=$self->{majorver} $bki_srcs");
- chdir('../../..');
-
- # Copy generated headers to include directory.
- opendir(my $dh, 'src/backend/catalog/')
- || die "Can't opendir src/backend/catalog/ $!";
- my @def_headers = grep { /pg_\w+_d\.h$/ } readdir($dh);
- closedir $dh;
- foreach my $def_header (@def_headers)
- {
- copyFile(
- "src/backend/catalog/$def_header",
- "src/include/catalog/$def_header");
- }
- copyFile(
- 'src/backend/catalog/schemapg.h',
- 'src/include/catalog/schemapg.h');
+ $need_genbki = 1;
last;
}
}
+ $need_genbki = 1
+ if IsNewer('src/backend/catalog/bki-stamp',
+ 'src/backend/catalog/genbki.pl');
+ $need_genbki = 1
+ if IsNewer('src/backend/catalog/bki-stamp',
+ 'src/backend/catalog/Catalog.pm');
+ if ($need_genbki)
+ {
+ chdir('src/backend/catalog');
+ my $bki_srcs = join(' ../../../src/include/catalog/', @bki_srcs);
+ system("perl genbki.pl --set-version=$self->{majorver} $bki_srcs");
+ open(my $f, '>', 'bki-stamp')
+ || confess "Could not touch bki-stamp";
+ close($f);
+ chdir('../../..');
+
+ # Copy generated headers to include directory.
+ opendir(my $dh, 'src/backend/catalog/')
+ || die "Can't opendir src/backend/catalog/ $!";
+ my @def_headers = grep { /pg_\w+_d\.h$/ } readdir($dh);
+ closedir $dh;
+ foreach my $def_header (@def_headers)
+ {
+ copyFile(
+ "src/backend/catalog/$def_header",
+ "src/include/catalog/$def_header");
+ }
+ copyFile(
+ 'src/backend/catalog/schemapg.h',
+ 'src/include/catalog/schemapg.h');
+ }
open(my $o, '>', "doc/src/sgml/version.sgml")
|| croak "Could not write to version.sgml\n";
diff --git a/src/tools/msvc/clean.bat b/src/tools/msvc/clean.bat
index 3355bed1f1d..a041ef2ebde 100755
--- a/src/tools/msvc/clean.bat
+++ b/src/tools/msvc/clean.bat
@@ -54,10 +54,11 @@ if exist doc\src\sgml\version.sgml del /q doc\src\sgml\version.sgml
if %DIST%==1 if exist src\backend\utils\fmgroids.h del /q src\backend\utils\fmgroids.h
if %DIST%==1 if exist src\backend\utils\fmgrprotos.h del /q src\backend\utils\fmgrprotos.h
if %DIST%==1 if exist src\backend\utils\fmgrtab.c del /q src\backend\utils\fmgrtab.c
+if %DIST%==1 if exist src\backend\utils\fmgr-stamp del /q src\backend\utils\fmgr-stamp
+if %DIST%==1 if exist src\backend\utils\errcodes.h del /q src\backend\utils\errcodes.h
if %DIST%==1 if exist src\backend\storage\lmgr\lwlocknames.c del /q src\backend\storage\lmgr\lwlocknames.c
if %DIST%==1 if exist src\backend\storage\lmgr\lwlocknames.h del /q src\backend\storage\lmgr\lwlocknames.h
if %DIST%==1 if exist src\pl\plpython\spiexceptions.h del /q src\pl\plpython\spiexceptions.h
-if %DIST%==1 if exist src\backend\utils\errcodes.h del /q src\backend\utils\errcodes.h
if %DIST%==1 if exist src\pl\plpgsql\src\plerrcodes.h del /q src\pl\plpgsql\src\plerrcodes.h
if %DIST%==1 if exist src\pl\tcl\pltclerrcodes.h del /q src\pl\tcl\pltclerrcodes.h
if %DIST%==1 if exist src\backend\utils\sort\qsort_tuple.c del /q src\backend\utils\sort\qsort_tuple.c
@@ -69,6 +70,7 @@ if %DIST%==1 if exist src\backend\catalog\postgres.description del /q src\backen
if %DIST%==1 if exist src\backend\catalog\postgres.shdescription del /q src\backend\catalog\postgres.shdescription
if %DIST%==1 if exist src\backend\catalog\schemapg.h del /q src\backend\catalog\schemapg.h
if %DIST%==1 if exist src\backend\catalog\pg_*_d.h del /q src\backend\catalog\pg_*_d.h
+if %DIST%==1 if exist src\backend\catalog\bki-stamp del /q src\backend\catalog\bki-stamp
if %DIST%==1 if exist src\backend\parser\scan.c del /q src\backend\parser\scan.c
if %DIST%==1 if exist src\backend\parser\gram.c del /q src\backend\parser\gram.c
if %DIST%==1 if exist src\backend\bootstrap\bootscanner.c del /q src\backend\bootstrap\bootscanner.c