mirror of
https://github.com/postgres/postgres.git
synced 2025-05-03 22:24:49 +03:00
Perltidy run over the MSVC build system files, to clean up code formatting
and indentation styles.
This commit is contained in:
parent
7c60637565
commit
93f35f0955
@ -3,7 +3,7 @@ package Install;
|
|||||||
#
|
#
|
||||||
# Package that provides 'make install' functionality for msvc builds
|
# Package that provides 'make install' functionality for msvc builds
|
||||||
#
|
#
|
||||||
# $PostgreSQL: pgsql/src/tools/msvc/Install.pm,v 1.34 2010/01/05 13:31:58 mha Exp $
|
# $PostgreSQL: pgsql/src/tools/msvc/Install.pm,v 1.35 2010/04/09 13:05:58 mha Exp $
|
||||||
#
|
#
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
@ -19,16 +19,16 @@ our (@ISA,@EXPORT_OK);
|
|||||||
|
|
||||||
sub lcopy
|
sub lcopy
|
||||||
{
|
{
|
||||||
my $src = shift;
|
my $src = shift;
|
||||||
my $target = shift;
|
my $target = shift;
|
||||||
|
|
||||||
if (-f $target)
|
if (-f $target)
|
||||||
{
|
{
|
||||||
unlink $target || confess "Could not delete $target\n";
|
unlink $target || confess "Could not delete $target\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
copy($src,$target)
|
copy($src,$target)
|
||||||
|| confess "Could not copy $src to $target\n";
|
|| confess "Could not copy $src to $target\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,31 +61,35 @@ sub Install
|
|||||||
|
|
||||||
CopySolutionOutput($conf, $target);
|
CopySolutionOutput($conf, $target);
|
||||||
lcopy($target . '/lib/libpq.dll', $target . '/bin/libpq.dll');
|
lcopy($target . '/lib/libpq.dll', $target . '/bin/libpq.dll');
|
||||||
my $sample_files = [];
|
my $sample_files = [];
|
||||||
File::Find::find({wanted =>
|
File::Find::find(
|
||||||
sub { /^.*\.sample\z/s &&
|
{
|
||||||
push(@$sample_files, $File::Find::name);
|
wanted =>sub {
|
||||||
}
|
/^.*\.sample\z/s
|
||||||
},
|
&&push(@$sample_files, $File::Find::name);
|
||||||
"src" );
|
}
|
||||||
CopySetOfFiles('config files', $sample_files , $target . '/share/');
|
},
|
||||||
|
"src"
|
||||||
|
);
|
||||||
|
CopySetOfFiles('config files', $sample_files, $target . '/share/');
|
||||||
CopyFiles(
|
CopyFiles(
|
||||||
'Import libraries',
|
'Import libraries',
|
||||||
$target .'/lib/',
|
$target .'/lib/',
|
||||||
"$conf\\", "postgres\\postgres.lib","libpq\\libpq.lib", "libecpg\\libecpg.lib", "libpgport\\libpgport.lib"
|
"$conf\\", "postgres\\postgres.lib","libpq\\libpq.lib", "libecpg\\libecpg.lib",
|
||||||
|
"libpgport\\libpgport.lib"
|
||||||
|
);
|
||||||
|
CopySetOfFiles(
|
||||||
|
'timezone names',
|
||||||
|
[ glob('src\timezone\tznames\*.txt') ],
|
||||||
|
$target . '/share/timezonesets/'
|
||||||
);
|
);
|
||||||
CopySetOfFiles('timezone names',
|
|
||||||
[ glob('src\timezone\tznames\*.txt') ] ,
|
|
||||||
$target . '/share/timezonesets/');
|
|
||||||
CopyFiles(
|
CopyFiles(
|
||||||
'timezone sets',
|
'timezone sets',
|
||||||
$target . '/share/timezonesets/',
|
$target . '/share/timezonesets/',
|
||||||
'src/timezone/tznames/', 'Default','Australia','India'
|
'src/timezone/tznames/', 'Default','Australia','India'
|
||||||
);
|
);
|
||||||
CopySetOfFiles('BKI files', [ glob("src\\backend\\catalog\\postgres.*") ],
|
CopySetOfFiles('BKI files', [ glob("src\\backend\\catalog\\postgres.*") ],$target .'/share/');
|
||||||
$target .'/share/');
|
CopySetOfFiles('SQL files', [ glob("src\\backend\\catalog\\*.sql") ],$target . '/share/');
|
||||||
CopySetOfFiles('SQL files', [ glob("src\\backend\\catalog\\*.sql") ],
|
|
||||||
$target . '/share/');
|
|
||||||
CopyFiles(
|
CopyFiles(
|
||||||
'Information schema data',
|
'Information schema data',
|
||||||
$target . '/share/',
|
$target . '/share/',
|
||||||
@ -94,12 +98,16 @@ sub Install
|
|||||||
GenerateConversionScript($target);
|
GenerateConversionScript($target);
|
||||||
GenerateTimezoneFiles($target,$conf);
|
GenerateTimezoneFiles($target,$conf);
|
||||||
GenerateTsearchFiles($target);
|
GenerateTsearchFiles($target);
|
||||||
CopySetOfFiles('Stopword files',
|
CopySetOfFiles(
|
||||||
[ glob ("src\\backend\\snowball\\stopwords\\*.stop") ],
|
'Stopword files',
|
||||||
$target . '/share/tsearch_data/');
|
[ glob("src\\backend\\snowball\\stopwords\\*.stop") ],
|
||||||
CopySetOfFiles('Dictionaries sample files',
|
$target . '/share/tsearch_data/'
|
||||||
[ glob ("src\\backend\\tsearch\\*_sample.*" ) ],
|
);
|
||||||
$target . '/share/tsearch_data/');
|
CopySetOfFiles(
|
||||||
|
'Dictionaries sample files',
|
||||||
|
[ glob("src\\backend\\tsearch\\*_sample.*") ],
|
||||||
|
$target . '/share/tsearch_data/'
|
||||||
|
);
|
||||||
CopyContribFiles($config,$target);
|
CopyContribFiles($config,$target);
|
||||||
CopyIncludeFiles($target);
|
CopyIncludeFiles($target);
|
||||||
|
|
||||||
@ -189,8 +197,10 @@ sub CopySolutionOutput
|
|||||||
# Static lib, such as libpgport, only used internally during build, don't install
|
# Static lib, such as libpgport, only used internally during build, don't install
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
lcopy("$conf\\$pf\\$pf.$ext","$target\\$dir\\$pf.$ext") || croak "Could not copy $pf.$ext\n";
|
lcopy("$conf\\$pf\\$pf.$ext","$target\\$dir\\$pf.$ext")
|
||||||
lcopy("$conf\\$pf\\$pf.pdb","$target\\symbols\\$pf.pdb") || croak "Could not copy $pf.pdb\n";
|
|| croak "Could not copy $pf.$ext\n";
|
||||||
|
lcopy("$conf\\$pf\\$pf.pdb","$target\\symbols\\$pf.pdb")
|
||||||
|
|| croak "Could not copy $pf.pdb\n";
|
||||||
print ".";
|
print ".";
|
||||||
}
|
}
|
||||||
print "\n";
|
print "\n";
|
||||||
@ -241,7 +251,8 @@ sub GenerateTimezoneFiles
|
|||||||
my @tzfiles = split /\s+/,$1;
|
my @tzfiles = split /\s+/,$1;
|
||||||
unshift @tzfiles,'';
|
unshift @tzfiles,'';
|
||||||
print "Generating timezone files...";
|
print "Generating timezone files...";
|
||||||
system("$conf\\zic\\zic -d \"$target/share/timezone\" " . join(" src/timezone/data/", @tzfiles));
|
system(
|
||||||
|
"$conf\\zic\\zic -d \"$target/share/timezone\" " . join(" src/timezone/data/", @tzfiles));
|
||||||
print "\n";
|
print "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -260,6 +271,7 @@ sub GenerateTsearchFiles
|
|||||||
open($F,">$target/share/snowball_create.sql")
|
open($F,">$target/share/snowball_create.sql")
|
||||||
|| die "Could not write snowball_create.sql";
|
|| die "Could not write snowball_create.sql";
|
||||||
print $F read_file('src/backend/snowball/snowball_func.sql.in');
|
print $F read_file('src/backend/snowball/snowball_func.sql.in');
|
||||||
|
|
||||||
while ($#pieces > 0)
|
while ($#pieces > 0)
|
||||||
{
|
{
|
||||||
my $lang = shift @pieces || last;
|
my $lang = shift @pieces || last;
|
||||||
@ -267,7 +279,8 @@ sub GenerateTsearchFiles
|
|||||||
my $txt = $tmpl;
|
my $txt = $tmpl;
|
||||||
my $stop = '';
|
my $stop = '';
|
||||||
|
|
||||||
if (-s "src/backend/snowball/stopwords/$lang.stop") {
|
if (-s "src/backend/snowball/stopwords/$lang.stop")
|
||||||
|
{
|
||||||
$stop = ", StopWords=$lang";
|
$stop = ", StopWords=$lang";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -383,9 +396,8 @@ sub CopyIncludeFiles
|
|||||||
{
|
{
|
||||||
my $target = shift;
|
my $target = shift;
|
||||||
|
|
||||||
EnsureDirectories($target, 'include', 'include/libpq',
|
EnsureDirectories($target, 'include', 'include/libpq','include/internal',
|
||||||
'include/internal', 'include/internal/libpq',
|
'include/internal/libpq','include/server');
|
||||||
'include/server');
|
|
||||||
|
|
||||||
CopyFiles(
|
CopyFiles(
|
||||||
'Public headers',
|
'Public headers',
|
||||||
@ -395,9 +407,11 @@ sub CopyIncludeFiles
|
|||||||
lcopy('src/include/libpq/libpq-fs.h', $target . '/include/libpq/')
|
lcopy('src/include/libpq/libpq-fs.h', $target . '/include/libpq/')
|
||||||
|| croak 'Could not copy libpq-fs.h';
|
|| croak 'Could not copy libpq-fs.h';
|
||||||
|
|
||||||
CopyFiles('Libpq headers',
|
CopyFiles(
|
||||||
$target . '/include/', 'src/interfaces/libpq/',
|
'Libpq headers',
|
||||||
'libpq-fe.h', 'libpq-events.h');
|
$target . '/include/',
|
||||||
|
'src/interfaces/libpq/','libpq-fe.h', 'libpq-events.h'
|
||||||
|
);
|
||||||
CopyFiles(
|
CopyFiles(
|
||||||
'Libpq internal headers',
|
'Libpq internal headers',
|
||||||
$target .'/include/internal/',
|
$target .'/include/internal/',
|
||||||
@ -417,9 +431,7 @@ sub CopyIncludeFiles
|
|||||||
$target . '/include/server/',
|
$target . '/include/server/',
|
||||||
'src/include/', 'pg_config.h', 'pg_config_os.h'
|
'src/include/', 'pg_config.h', 'pg_config_os.h'
|
||||||
);
|
);
|
||||||
CopySetOfFiles('',
|
CopySetOfFiles('',[ glob("src\\include\\*.h") ],$target . '/include/server/');
|
||||||
[ glob( "src\\include\\*.h" ) ],
|
|
||||||
$target . '/include/server/');
|
|
||||||
my $D;
|
my $D;
|
||||||
opendir($D, 'src/include') || croak "Could not opendir on src/include!\n";
|
opendir($D, 'src/include') || croak "Could not opendir on src/include!\n";
|
||||||
|
|
||||||
@ -430,8 +442,7 @@ sub CopyIncludeFiles
|
|||||||
next unless (-d 'src/include/' . $d);
|
next unless (-d 'src/include/' . $d);
|
||||||
|
|
||||||
EnsureDirectories($target . '/include/server', $d);
|
EnsureDirectories($target . '/include/server', $d);
|
||||||
system(
|
system("xcopy /s /i /q /r /y src\\include\\$d\\*.h \"$target\\include\\server\\$d\\\"")
|
||||||
"xcopy /s /i /q /r /y src\\include\\$d\\*.h \"$target\\include\\server\\$d\\\"")
|
|
||||||
&& croak("Failed to copy include directory $d\n");
|
&& croak("Failed to copy include directory $d\n");
|
||||||
}
|
}
|
||||||
closedir($D);
|
closedir($D);
|
||||||
@ -463,12 +474,16 @@ sub GenerateNLSFiles
|
|||||||
|
|
||||||
print "Installing NLS files...";
|
print "Installing NLS files...";
|
||||||
EnsureDirectories($target, "share/locale");
|
EnsureDirectories($target, "share/locale");
|
||||||
my @flist;
|
my @flist;
|
||||||
File::Find::find({wanted =>
|
File::Find::find(
|
||||||
sub { /^nls\.mk\z/s &&
|
{
|
||||||
!push(@flist, $File::Find::name);
|
wanted =>sub {
|
||||||
}
|
/^nls\.mk\z/s
|
||||||
}, "src");
|
&&!push(@flist, $File::Find::name);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"src"
|
||||||
|
);
|
||||||
foreach (@flist)
|
foreach (@flist)
|
||||||
{
|
{
|
||||||
my $prgm = DetermineCatalogName($_);
|
my $prgm = DetermineCatalogName($_);
|
||||||
@ -484,8 +499,7 @@ sub GenerateNLSFiles
|
|||||||
EnsureDirectories($target, "share/locale/$lang", "share/locale/$lang/LC_MESSAGES");
|
EnsureDirectories($target, "share/locale/$lang", "share/locale/$lang/LC_MESSAGES");
|
||||||
system(
|
system(
|
||||||
"\"$nlspath\\bin\\msgfmt\" -o \"$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo\" $_"
|
"\"$nlspath\\bin\\msgfmt\" -o \"$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo\" $_"
|
||||||
)
|
)&& croak("Could not run msgfmt on $dir\\$_");
|
||||||
&& croak("Could not run msgfmt on $dir\\$_");
|
|
||||||
print ".";
|
print ".";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package Mkvcbuild;
|
|||||||
#
|
#
|
||||||
# Package that generates build files for msvc build
|
# Package that generates build files for msvc build
|
||||||
#
|
#
|
||||||
# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.53 2010/02/15 17:10:50 mha Exp $
|
# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.54 2010/04/09 13:05:58 mha Exp $
|
||||||
#
|
#
|
||||||
use Carp;
|
use Carp;
|
||||||
use Win32;
|
use Win32;
|
||||||
@ -75,9 +75,12 @@ sub mkvcbuild
|
|||||||
$postgres->FullExportDLL('postgres.lib');
|
$postgres->FullExportDLL('postgres.lib');
|
||||||
|
|
||||||
my $snowball = $solution->AddProject('dict_snowball','dll','','src\backend\snowball');
|
my $snowball = $solution->AddProject('dict_snowball','dll','','src\backend\snowball');
|
||||||
$snowball->RelocateFiles('src\backend\snowball\libstemmer', sub {
|
$snowball->RelocateFiles(
|
||||||
return shift !~ /dict_snowball.c$/;
|
'src\backend\snowball\libstemmer',
|
||||||
});
|
sub {
|
||||||
|
return shift !~ /dict_snowball.c$/;
|
||||||
|
}
|
||||||
|
);
|
||||||
$snowball->AddIncludeDir('src\include\snowball');
|
$snowball->AddIncludeDir('src\include\snowball');
|
||||||
$snowball->AddReference($postgres);
|
$snowball->AddReference($postgres);
|
||||||
|
|
||||||
@ -87,31 +90,31 @@ sub mkvcbuild
|
|||||||
|
|
||||||
if ($solution->{options}->{perl})
|
if ($solution->{options}->{perl})
|
||||||
{
|
{
|
||||||
my $plperlsrc = "src\\pl\\plperl\\";
|
my $plperlsrc = "src\\pl\\plperl\\";
|
||||||
my $plperl = $solution->AddProject('plperl','dll','PLs','src\pl\plperl');
|
my $plperl = $solution->AddProject('plperl','dll','PLs','src\pl\plperl');
|
||||||
$plperl->AddIncludeDir($solution->{options}->{perl} . '/lib/CORE');
|
$plperl->AddIncludeDir($solution->{options}->{perl} . '/lib/CORE');
|
||||||
$plperl->AddDefine('PLPERL_HAVE_UID_GID');
|
$plperl->AddDefine('PLPERL_HAVE_UID_GID');
|
||||||
foreach my $xs ('SPI.xs', 'Util.xs')
|
foreach my $xs ('SPI.xs', 'Util.xs')
|
||||||
{
|
{
|
||||||
(my $xsc = $xs) =~ s/\.xs/.c/;
|
(my $xsc = $xs) =~ s/\.xs/.c/;
|
||||||
if (Solution::IsNewer("$plperlsrc$xsc","$plperlsrc$xs"))
|
if (Solution::IsNewer("$plperlsrc$xsc","$plperlsrc$xs"))
|
||||||
{
|
{
|
||||||
print "Building $plperlsrc$xsc...\n";
|
print "Building $plperlsrc$xsc...\n";
|
||||||
system( $solution->{options}->{perl}
|
system( $solution->{options}->{perl}
|
||||||
. '/bin/perl '
|
. '/bin/perl '
|
||||||
. $solution->{options}->{perl}
|
. $solution->{options}->{perl}
|
||||||
. '/lib/ExtUtils/xsubpp -typemap '
|
. '/lib/ExtUtils/xsubpp -typemap '
|
||||||
. $solution->{options}->{perl}
|
. $solution->{options}->{perl}
|
||||||
. '/lib/ExtUtils/typemap '
|
. '/lib/ExtUtils/typemap '
|
||||||
. "$plperlsrc$xs "
|
. "$plperlsrc$xs "
|
||||||
. ">$plperlsrc$xsc");
|
. ">$plperlsrc$xsc");
|
||||||
if ((!(-f "$plperlsrc$xsc")) || -z "$plperlsrc$xsc")
|
if ((!(-f "$plperlsrc$xsc")) || -z "$plperlsrc$xsc")
|
||||||
{
|
{
|
||||||
unlink("$plperlsrc$xsc"); # if zero size
|
unlink("$plperlsrc$xsc"); # if zero size
|
||||||
die "Failed to create $xsc.\n";
|
die "Failed to create $xsc.\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( Solution::IsNewer('src\pl\plperl\perlchunks.h','src\pl\plperl\plc_perlboot.pl')
|
if ( Solution::IsNewer('src\pl\plperl\perlchunks.h','src\pl\plperl\plc_perlboot.pl')
|
||||||
||Solution::IsNewer('src\pl\plperl\perlchunks.h','src\pl\plperl\plc_safe_bad.pl')
|
||Solution::IsNewer('src\pl\plperl\perlchunks.h','src\pl\plperl\plc_safe_bad.pl')
|
||||||
||Solution::IsNewer('src\pl\plperl\perlchunks.h','src\pl\plperl\plc_safe_ok.pl'))
|
||Solution::IsNewer('src\pl\plperl\perlchunks.h','src\pl\plperl\plc_safe_ok.pl'))
|
||||||
@ -133,28 +136,35 @@ sub mkvcbuild
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$plperl->AddReference($postgres);
|
$plperl->AddReference($postgres);
|
||||||
my @perl_libs = grep {/perl\d+.lib$/ }
|
my @perl_libs =
|
||||||
glob($solution->{options}->{perl} . '\lib\CORE\perl*.lib');
|
grep {/perl\d+.lib$/ }glob($solution->{options}->{perl} . '\lib\CORE\perl*.lib');
|
||||||
if (@perl_libs == 1)
|
if (@perl_libs == 1)
|
||||||
{
|
{
|
||||||
$plperl->AddLibrary($perl_libs[0]);
|
$plperl->AddLibrary($perl_libs[0]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
die "could not identify perl library version";
|
die "could not identify perl library version";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($solution->{options}->{python})
|
if ($solution->{options}->{python})
|
||||||
{
|
{
|
||||||
|
|
||||||
# Attempt to get python version and location. Assume python.exe in specified dir.
|
# Attempt to get python version and location. Assume python.exe in specified dir.
|
||||||
open(P, $solution->{options}->{python} . "\\python -c \"import sys;print(sys.prefix);print(str(sys.version_info[0])+str(sys.version_info[1]))\" |") || die "Could not query for python version!\n";
|
open(P,
|
||||||
my $pyprefix = <P>;chomp($pyprefix);
|
$solution->{options}->{python}
|
||||||
my $pyver = <P>;chomp($pyver);
|
. "\\python -c \"import sys;print(sys.prefix);print(str(sys.version_info[0])+str(sys.version_info[1]))\" |"
|
||||||
|
) || die "Could not query for python version!\n";
|
||||||
|
my $pyprefix = <P>;
|
||||||
|
chomp($pyprefix);
|
||||||
|
my $pyver = <P>;
|
||||||
|
chomp($pyver);
|
||||||
close(P);
|
close(P);
|
||||||
|
|
||||||
# Sometimes (always?) if python is not present, the execution actually works, but gives no data...
|
# Sometimes (always?) if python is not present, the execution actually works, but gives no data...
|
||||||
die "Failed to query python for version information\n" if (!(defined($pyprefix) && defined($pyver)));
|
die "Failed to query python for version information\n"
|
||||||
|
if (!(defined($pyprefix) && defined($pyver)));
|
||||||
|
|
||||||
my $plpython = $solution->AddProject('plpython','dll','PLs','src\pl\plpython');
|
my $plpython = $solution->AddProject('plpython','dll','PLs','src\pl\plpython');
|
||||||
$plpython->AddIncludeDir($pyprefix . '\include');
|
$plpython->AddIncludeDir($pyprefix . '\include');
|
||||||
@ -179,7 +189,7 @@ sub mkvcbuild
|
|||||||
|
|
||||||
$libpq = $solution->AddProject('libpq','dll','interfaces','src\interfaces\libpq');
|
$libpq = $solution->AddProject('libpq','dll','interfaces','src\interfaces\libpq');
|
||||||
$libpq->AddDefine('FRONTEND');
|
$libpq->AddDefine('FRONTEND');
|
||||||
$libpq->AddDefine('UNSAFE_STAT_OK');
|
$libpq->AddDefine('UNSAFE_STAT_OK');
|
||||||
$libpq->AddIncludeDir('src\port');
|
$libpq->AddIncludeDir('src\port');
|
||||||
$libpq->AddLibrary('wsock32.lib');
|
$libpq->AddLibrary('wsock32.lib');
|
||||||
$libpq->AddLibrary('secur32.lib');
|
$libpq->AddLibrary('secur32.lib');
|
||||||
@ -189,7 +199,8 @@ sub mkvcbuild
|
|||||||
$libpq->ReplaceFile('src\interfaces\libpq\libpqrc.c','src\interfaces\libpq\libpq.rc');
|
$libpq->ReplaceFile('src\interfaces\libpq\libpqrc.c','src\interfaces\libpq\libpq.rc');
|
||||||
$libpq->AddReference($libpgport);
|
$libpq->AddReference($libpgport);
|
||||||
|
|
||||||
my $libpqwalreceiver = $solution->AddProject('libpqwalreceiver', 'dll', '', 'src\backend\replication\libpqwalreceiver');
|
my $libpqwalreceiver = $solution->AddProject('libpqwalreceiver', 'dll', '',
|
||||||
|
'src\backend\replication\libpqwalreceiver');
|
||||||
$libpqwalreceiver->AddIncludeDir('src\interfaces\libpq');
|
$libpqwalreceiver->AddIncludeDir('src\interfaces\libpq');
|
||||||
$libpqwalreceiver->AddReference($postgres,$libpq);
|
$libpqwalreceiver->AddReference($postgres,$libpq);
|
||||||
|
|
||||||
@ -314,12 +325,12 @@ sub mkvcbuild
|
|||||||
|
|
||||||
if ($solution->{options}->{uuid})
|
if ($solution->{options}->{uuid})
|
||||||
{
|
{
|
||||||
$contrib_extraincludes->{'uuid-ossp'} = [ $solution->{options}->{uuid} . '\include' ];
|
$contrib_extraincludes->{'uuid-ossp'} = [ $solution->{options}->{uuid} . '\include' ];
|
||||||
$contrib_extralibs->{'uuid-ossp'} = [ $solution->{options}->{uuid} . '\lib\uuid.lib' ];
|
$contrib_extralibs->{'uuid-ossp'} = [ $solution->{options}->{uuid} . '\lib\uuid.lib' ];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
push @contrib_excludes,'uuid-ossp';
|
push @contrib_excludes,'uuid-ossp';
|
||||||
}
|
}
|
||||||
|
|
||||||
# Pgcrypto makefile too complex to parse....
|
# Pgcrypto makefile too complex to parse....
|
||||||
@ -462,10 +473,10 @@ sub AddContrib
|
|||||||
$mf =~ s{\\\s*[\r\n]+}{}mg;
|
$mf =~ s{\\\s*[\r\n]+}{}mg;
|
||||||
my $proj = $solution->AddProject($dn, 'dll', 'contrib');
|
my $proj = $solution->AddProject($dn, 'dll', 'contrib');
|
||||||
$mf =~ /^OBJS\s*=\s*(.*)$/gm || croak "Could not find objects in MODULE_big for $n\n";
|
$mf =~ /^OBJS\s*=\s*(.*)$/gm || croak "Could not find objects in MODULE_big for $n\n";
|
||||||
my $objs = $1;
|
my $objs = $1;
|
||||||
while ($objs =~ /\b([\w-]+\.o)\b/g)
|
while ($objs =~ /\b([\w-]+\.o)\b/g)
|
||||||
{
|
{
|
||||||
my $o = $1;
|
my $o = $1;
|
||||||
$o =~ s/\.o$/.c/;
|
$o =~ s/\.o$/.c/;
|
||||||
$proj->AddFile('contrib\\' . $n . '\\' . $o);
|
$proj->AddFile('contrib\\' . $n . '\\' . $o);
|
||||||
}
|
}
|
||||||
@ -479,9 +490,9 @@ sub AddContrib
|
|||||||
$mf2 =~ /^SUBOBJS\s*=\s*(.*)$/gm
|
$mf2 =~ /^SUBOBJS\s*=\s*(.*)$/gm
|
||||||
|| croak "Could not find objects in MODULE_big for $n, subdir $d\n";
|
|| croak "Could not find objects in MODULE_big for $n, subdir $d\n";
|
||||||
$objs = $1;
|
$objs = $1;
|
||||||
while ($objs =~ /\b([\w-]+\.o)\b/g)
|
while ($objs =~ /\b([\w-]+\.o)\b/g)
|
||||||
{
|
{
|
||||||
my $o = $1;
|
my $o = $1;
|
||||||
$o =~ s/\.o$/.c/;
|
$o =~ s/\.o$/.c/;
|
||||||
$proj->AddFile('contrib\\' . $n . '\\' . $d . '\\' . $o);
|
$proj->AddFile('contrib\\' . $n . '\\' . $d . '\\' . $o);
|
||||||
}
|
}
|
||||||
@ -506,7 +517,7 @@ sub AddContrib
|
|||||||
my $objs = $1;
|
my $objs = $1;
|
||||||
while ($objs =~ /\b([\w-]+\.o)\b/g)
|
while ($objs =~ /\b([\w-]+\.o)\b/g)
|
||||||
{
|
{
|
||||||
my $o = $1;
|
my $o = $1;
|
||||||
$o =~ s/\.o$/.c/;
|
$o =~ s/\.o$/.c/;
|
||||||
$proj->AddFile('contrib\\' . $n . '\\' . $o);
|
$proj->AddFile('contrib\\' . $n . '\\' . $o);
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package Project;
|
|||||||
#
|
#
|
||||||
# Package that encapsulates a Visual C++ project file generation
|
# Package that encapsulates a Visual C++ project file generation
|
||||||
#
|
#
|
||||||
# $PostgreSQL: pgsql/src/tools/msvc/Project.pm,v 1.25 2010/01/05 11:12:50 mha Exp $
|
# $PostgreSQL: pgsql/src/tools/msvc/Project.pm,v 1.26 2010/04/09 13:05:58 mha Exp $
|
||||||
#
|
#
|
||||||
use Carp;
|
use Carp;
|
||||||
use strict;
|
use strict;
|
||||||
@ -102,11 +102,13 @@ sub RemoveFile
|
|||||||
sub RelocateFiles
|
sub RelocateFiles
|
||||||
{
|
{
|
||||||
my ($self, $targetdir, $proc) = @_;
|
my ($self, $targetdir, $proc) = @_;
|
||||||
foreach my $f (keys %{$self->{files}}) {
|
foreach my $f (keys %{$self->{files}})
|
||||||
|
{
|
||||||
my $r = &$proc($f);
|
my $r = &$proc($f);
|
||||||
if ($r) {
|
if ($r)
|
||||||
$self->RemoveFile($f);
|
{
|
||||||
$self->AddFile($targetdir . '\\' . basename($f));
|
$self->RemoveFile($f);
|
||||||
|
$self->AddFile($targetdir . '\\' . basename($f));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -128,7 +130,7 @@ sub AddLibrary
|
|||||||
|
|
||||||
if ($lib =~ m/\s/)
|
if ($lib =~ m/\s/)
|
||||||
{
|
{
|
||||||
$lib = '"' . $lib . """;
|
$lib = '"' . $lib . """;
|
||||||
}
|
}
|
||||||
|
|
||||||
push @{$self->{libraries}}, $lib;
|
push @{$self->{libraries}}, $lib;
|
||||||
@ -348,9 +350,9 @@ sub Save
|
|||||||
$self->FullExportDLL($self->{name} . ".lib");
|
$self->FullExportDLL($self->{name} . ".lib");
|
||||||
}
|
}
|
||||||
|
|
||||||
# Warning 4197 is about double exporting, disable this per
|
# Warning 4197 is about double exporting, disable this per
|
||||||
# http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=99193
|
# http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=99193
|
||||||
$self->DisableLinkerWarnings('4197') if ($self->{platform} eq 'x64');
|
$self->DisableLinkerWarnings('4197') if ($self->{platform} eq 'x64');
|
||||||
|
|
||||||
# Dump the project
|
# Dump the project
|
||||||
open(F, ">$self->{name}.vcproj") || croak("Could not write to $self->{name}.vcproj\n");
|
open(F, ">$self->{name}.vcproj") || croak("Could not write to $self->{name}.vcproj\n");
|
||||||
@ -405,7 +407,8 @@ EOF
|
|||||||
my $of = $f;
|
my $of = $f;
|
||||||
$of =~ s/\.l$/.c/;
|
$of =~ s/\.l$/.c/;
|
||||||
print F '>'
|
print F '>'
|
||||||
. $self->GenerateCustomTool('Running flex on ' . $f, 'src\tools\msvc\pgflex.bat ' . $f,$of)
|
. $self->GenerateCustomTool('Running flex on ' . $f,
|
||||||
|
'src\tools\msvc\pgflex.bat ' . $f,$of)
|
||||||
. '</File>' . "\n";
|
. '</File>' . "\n";
|
||||||
}
|
}
|
||||||
elsif (defined($uniquefiles{$file}))
|
elsif (defined($uniquefiles{$file}))
|
||||||
@ -439,8 +442,8 @@ sub GenerateCustomTool
|
|||||||
my ($self, $desc, $tool, $output, $cfg) = @_;
|
my ($self, $desc, $tool, $output, $cfg) = @_;
|
||||||
if (!defined($cfg))
|
if (!defined($cfg))
|
||||||
{
|
{
|
||||||
return $self->GenerateCustomTool($desc, $tool, $output, 'Debug') .
|
return $self->GenerateCustomTool($desc, $tool, $output, 'Debug')
|
||||||
$self->GenerateCustomTool($desc, $tool, $output, 'Release');
|
.$self->GenerateCustomTool($desc, $tool, $output, 'Release');
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
"<FileConfiguration Name=\"$cfg|$self->{platform}\"><Tool Name=\"VCCustomBuildTool\" Description=\"$desc\" CommandLine=\"$tool\" AdditionalDependencies=\"\" Outputs=\"$output\" /></FileConfiguration>";
|
"<FileConfiguration Name=\"$cfg|$self->{platform}\"><Tool Name=\"VCCustomBuildTool\" Description=\"$desc\" CommandLine=\"$tool\" AdditionalDependencies=\"\" Outputs=\"$output\" /></FileConfiguration>";
|
||||||
|
@ -3,7 +3,7 @@ package Solution;
|
|||||||
#
|
#
|
||||||
# Package that encapsulates a Visual C++ solution file generation
|
# Package that encapsulates a Visual C++ solution file generation
|
||||||
#
|
#
|
||||||
# $PostgreSQL: pgsql/src/tools/msvc/Solution.pm,v 1.56 2010/03/03 03:29:37 adunstan Exp $
|
# $PostgreSQL: pgsql/src/tools/msvc/Solution.pm,v 1.57 2010/04/09 13:05:58 mha Exp $
|
||||||
#
|
#
|
||||||
use Carp;
|
use Carp;
|
||||||
use strict;
|
use strict;
|
||||||
@ -22,11 +22,12 @@ sub new
|
|||||||
platform => undef,
|
platform => undef,
|
||||||
};
|
};
|
||||||
bless $self;
|
bless $self;
|
||||||
# integer_datetimes is now the default
|
|
||||||
$options->{integer_datetimes} = 1
|
# integer_datetimes is now the default
|
||||||
unless exists $options->{integer_datetimes};
|
$options->{integer_datetimes} = 1
|
||||||
|
unless exists $options->{integer_datetimes};
|
||||||
$options->{float4byval} = 1
|
$options->{float4byval} = 1
|
||||||
unless exists $options->{float4byval};
|
unless exists $options->{float4byval};
|
||||||
if ($options->{xml})
|
if ($options->{xml})
|
||||||
{
|
{
|
||||||
if (!($options->{xslt} && $options->{iconv}))
|
if (!($options->{xslt} && $options->{iconv}))
|
||||||
@ -34,23 +35,23 @@ sub new
|
|||||||
die "XML requires both XSLT and ICONV\n";
|
die "XML requires both XSLT and ICONV\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$options->{blocksize} = 8
|
$options->{blocksize} = 8
|
||||||
unless $options->{blocksize}; # undef or 0 means default
|
unless $options->{blocksize}; # undef or 0 means default
|
||||||
die "Bad blocksize $options->{blocksize}"
|
die "Bad blocksize $options->{blocksize}"
|
||||||
unless grep {$_ == $options->{blocksize}} (1,2,4,8,16,32);
|
unless grep {$_ == $options->{blocksize}} (1,2,4,8,16,32);
|
||||||
$options->{segsize} = 1
|
$options->{segsize} = 1
|
||||||
unless $options->{segsize}; # undef or 0 means default
|
unless $options->{segsize}; # undef or 0 means default
|
||||||
# only allow segsize 1 for now, as we can't do large files yet in windows
|
# only allow segsize 1 for now, as we can't do large files yet in windows
|
||||||
die "Bad segsize $options->{segsize}"
|
die "Bad segsize $options->{segsize}"
|
||||||
unless $options->{segsize} == 1;
|
unless $options->{segsize} == 1;
|
||||||
$options->{wal_blocksize} = 8
|
$options->{wal_blocksize} = 8
|
||||||
unless $options->{wal_blocksize}; # undef or 0 means default
|
unless $options->{wal_blocksize}; # undef or 0 means default
|
||||||
die "Bad wal_blocksize $options->{wal_blocksize}"
|
die "Bad wal_blocksize $options->{wal_blocksize}"
|
||||||
unless grep {$_ == $options->{wal_blocksize}} (1,2,4,8,16,32,64);
|
unless grep {$_ == $options->{wal_blocksize}} (1,2,4,8,16,32,64);
|
||||||
$options->{wal_segsize} = 16
|
$options->{wal_segsize} = 16
|
||||||
unless $options->{wal_segsize}; # undef or 0 means default
|
unless $options->{wal_segsize}; # undef or 0 means default
|
||||||
die "Bad wal_segsize $options->{wal_segsize}"
|
die "Bad wal_segsize $options->{wal_segsize}"
|
||||||
unless grep {$_ == $options->{wal_segsize}} (1,2,4,8,16,32,64);
|
unless grep {$_ == $options->{wal_segsize}} (1,2,4,8,16,32,64);
|
||||||
|
|
||||||
$self->DetermineToolVersions();
|
$self->DetermineToolVersions();
|
||||||
|
|
||||||
@ -61,33 +62,35 @@ sub DetermineToolVersions
|
|||||||
{
|
{
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
# Determine version of vcbuild command, to set proper verison of visual studio
|
# Determine version of vcbuild command, to set proper verison of visual studio
|
||||||
open(P,"vcbuild /? |") || die "vcbuild command not found";
|
open(P,"vcbuild /? |") || die "vcbuild command not found";
|
||||||
my $line = <P>;
|
my $line = <P>;
|
||||||
close(P);
|
close(P);
|
||||||
if ($line !~ /^Microsoft\s*\(R\) Visual C\+\+ Project Builder - \D+(\d+)\.00\.\d+/) {
|
if ($line !~ /^Microsoft\s*\(R\) Visual C\+\+ Project Builder - \D+(\d+)\.00\.\d+/)
|
||||||
die "Unable to determine vcbuild version from first line of output!";
|
{
|
||||||
|
die "Unable to determine vcbuild version from first line of output!";
|
||||||
}
|
}
|
||||||
if ($1 == 8) { $self->{vcver} = '8.00' }
|
if ($1 == 8) { $self->{vcver} = '8.00' }
|
||||||
elsif ($1 == 9) { $self->{vcver} = '9.00' }
|
elsif ($1 == 9) { $self->{vcver} = '9.00' }
|
||||||
else { die "Unsupported version of Visual Studio: $1" }
|
else { die "Unsupported version of Visual Studio: $1" }
|
||||||
print "Detected Visual Studio version $self->{vcver}\n";
|
print "Detected Visual Studio version $self->{vcver}\n";
|
||||||
|
|
||||||
# Determine if we are in 32 or 64-bit mode. Do this by seeing if CL has
|
# Determine if we are in 32 or 64-bit mode. Do this by seeing if CL has
|
||||||
# 64-bit only parameters.
|
# 64-bit only parameters.
|
||||||
$self->{platform} = 'Win32';
|
$self->{platform} = 'Win32';
|
||||||
open(P,"cl /? 2>NUL|") || die "cl command not found";
|
open(P,"cl /? 2>NUL|") || die "cl command not found";
|
||||||
while (<P>) {
|
while (<P>)
|
||||||
if (/^\/favor:</) {
|
{
|
||||||
$self->{platform} = 'x64';
|
if (/^\/favor:</)
|
||||||
last;
|
{
|
||||||
}
|
$self->{platform} = 'x64';
|
||||||
}
|
last;
|
||||||
close(P);
|
}
|
||||||
print "Detected hardware platform: $self->{platform}\n";
|
}
|
||||||
|
close(P);
|
||||||
|
print "Detected hardware platform: $self->{platform}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Return 1 if $oldfile is newer than $newfile, or if $newfile doesn't exist.
|
# Return 1 if $oldfile is newer than $newfile, or if $newfile doesn't exist.
|
||||||
# Special case - if config.pl has changed, always return 1
|
# Special case - if config.pl has changed, always return 1
|
||||||
sub IsNewer
|
sub IsNewer
|
||||||
@ -95,8 +98,11 @@ sub IsNewer
|
|||||||
my ($newfile, $oldfile) = @_;
|
my ($newfile, $oldfile) = @_;
|
||||||
if ($oldfile ne 'src\tools\msvc\config.pl' && $oldfile ne 'src\tools\msvc\config_default.pl')
|
if ($oldfile ne 'src\tools\msvc\config.pl' && $oldfile ne 'src\tools\msvc\config_default.pl')
|
||||||
{
|
{
|
||||||
return 1 if (-f 'src\tools\msvc\config.pl') && IsNewer($newfile, 'src\tools\msvc\config.pl');
|
return 1
|
||||||
return 1 if (-f 'src\tools\msvc\config_default.pl') && IsNewer($newfile, 'src\tools\msvc\config_default.pl');
|
if (-f 'src\tools\msvc\config.pl') && IsNewer($newfile, 'src\tools\msvc\config.pl');
|
||||||
|
return 1
|
||||||
|
if (-f 'src\tools\msvc\config_default.pl')
|
||||||
|
&& IsNewer($newfile, 'src\tools\msvc\config_default.pl');
|
||||||
}
|
}
|
||||||
return 1 if (!(-e $newfile));
|
return 1 if (!(-e $newfile));
|
||||||
my @nstat = stat($newfile);
|
my @nstat = stat($newfile);
|
||||||
@ -161,7 +167,7 @@ sub GenerateFiles
|
|||||||
s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY(z)\n#define PG_VERSION_STR "PostgreSQL $self->{strver}, compiled by Visual C++ build " __STRINGIFY2(_MSC_VER) ", $bits-bit"};
|
s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY(z)\n#define PG_VERSION_STR "PostgreSQL $self->{strver}, compiled by Visual C++ build " __STRINGIFY2(_MSC_VER) ", $bits-bit"};
|
||||||
print O;
|
print O;
|
||||||
}
|
}
|
||||||
print O "#define PG_MAJORVERSION \"$self->{majorver}\"\n";
|
print O "#define PG_MAJORVERSION \"$self->{majorver}\"\n";
|
||||||
print O "#define LOCALEDIR \"/share/locale\"\n" if ($self->{options}->{nls});
|
print O "#define LOCALEDIR \"/share/locale\"\n" if ($self->{options}->{nls});
|
||||||
print O "/* defines added by config steps */\n";
|
print O "/* defines added by config steps */\n";
|
||||||
print O "#ifndef IGNORE_CONFIGURED_SETTINGS\n";
|
print O "#ifndef IGNORE_CONFIGURED_SETTINGS\n";
|
||||||
@ -170,16 +176,13 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY
|
|||||||
print O "#define USE_LDAP 1\n" if ($self->{options}->{ldap});
|
print O "#define USE_LDAP 1\n" if ($self->{options}->{ldap});
|
||||||
print O "#define HAVE_LIBZ 1\n" if ($self->{options}->{zlib});
|
print O "#define HAVE_LIBZ 1\n" if ($self->{options}->{zlib});
|
||||||
print O "#define USE_SSL 1\n" if ($self->{options}->{openssl});
|
print O "#define USE_SSL 1\n" if ($self->{options}->{openssl});
|
||||||
print O "#define ENABLE_NLS 1\n" if ($self->{options}->{nls});
|
print O "#define ENABLE_NLS 1\n" if ($self->{options}->{nls});
|
||||||
|
|
||||||
print O "#define BLCKSZ ",1024 * $self->{options}->{blocksize},"\n";
|
print O "#define BLCKSZ ",1024 * $self->{options}->{blocksize},"\n";
|
||||||
print O "#define RELSEG_SIZE ",
|
print O "#define RELSEG_SIZE ",
|
||||||
(1024 / $self->{options}->{blocksize}) *
|
(1024 / $self->{options}->{blocksize}) *$self->{options}->{segsize} * 1024, "\n";
|
||||||
$self->{options}->{segsize} * 1024, "\n";
|
print O "#define XLOG_BLCKSZ ",1024 * $self->{options}->{wal_blocksize},"\n";
|
||||||
print O "#define XLOG_BLCKSZ ",
|
print O "#define XLOG_SEG_SIZE (",$self->{options}->{wal_segsize}," * 1024 * 1024)\n";
|
||||||
1024 * $self->{options}->{wal_blocksize},"\n";
|
|
||||||
print O "#define XLOG_SEG_SIZE (",
|
|
||||||
$self->{options}->{wal_segsize}," * 1024 * 1024)\n";
|
|
||||||
|
|
||||||
if ($self->{options}->{float4byval})
|
if ($self->{options}->{float4byval})
|
||||||
{
|
{
|
||||||
@ -235,10 +238,23 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY
|
|||||||
close(I);
|
close(I);
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->GenerateDefFile("src\\interfaces\\libpq\\libpqdll.def","src\\interfaces\\libpq\\exports.txt","LIBPQ");
|
$self->GenerateDefFile("src\\interfaces\\libpq\\libpqdll.def",
|
||||||
$self->GenerateDefFile("src\\interfaces\\ecpg\\ecpglib\\ecpglib.def","src\\interfaces\\ecpg\\ecpglib\\exports.txt","LIBECPG");
|
"src\\interfaces\\libpq\\exports.txt","LIBPQ");
|
||||||
$self->GenerateDefFile("src\\interfaces\\ecpg\\compatlib\\compatlib.def","src\\interfaces\\ecpg\\compatlib\\exports.txt","LIBECPG_COMPAT");
|
$self->GenerateDefFile(
|
||||||
$self->GenerateDefFile("src\\interfaces\\ecpg\\pgtypeslib\\pgtypeslib.def","src\\interfaces\\ecpg\\pgtypeslib\\exports.txt","LIBPGTYPES");
|
"src\\interfaces\\ecpg\\ecpglib\\ecpglib.def",
|
||||||
|
"src\\interfaces\\ecpg\\ecpglib\\exports.txt",
|
||||||
|
"LIBECPG"
|
||||||
|
);
|
||||||
|
$self->GenerateDefFile(
|
||||||
|
"src\\interfaces\\ecpg\\compatlib\\compatlib.def",
|
||||||
|
"src\\interfaces\\ecpg\\compatlib\\exports.txt",
|
||||||
|
"LIBECPG_COMPAT"
|
||||||
|
);
|
||||||
|
$self->GenerateDefFile(
|
||||||
|
"src\\interfaces\\ecpg\\pgtypeslib\\pgtypeslib.def",
|
||||||
|
"src\\interfaces\\ecpg\\pgtypeslib\\exports.txt",
|
||||||
|
"LIBPGTYPES"
|
||||||
|
);
|
||||||
|
|
||||||
if (IsNewer('src\backend\utils\fmgrtab.c','src\include\catalog\pg_proc.h'))
|
if (IsNewer('src\backend\utils\fmgrtab.c','src\include\catalog\pg_proc.h'))
|
||||||
{
|
{
|
||||||
@ -251,9 +267,11 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY
|
|||||||
|
|
||||||
if (IsNewer('src\include\utils\probes.h','src\backend\utils\probes.d'))
|
if (IsNewer('src\include\utils\probes.h','src\backend\utils\probes.d'))
|
||||||
{
|
{
|
||||||
print "Generating probes.h...\n";
|
print "Generating probes.h...\n";
|
||||||
system('psed -f src\backend\utils\Gen_dummy_probes.sed src\backend\utils\probes.d > src\include\utils\probes.h');
|
system(
|
||||||
}
|
'psed -f src\backend\utils\Gen_dummy_probes.sed src\backend\utils\probes.d > src\include\utils\probes.h'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (IsNewer('src\interfaces\libpq\libpq.rc','src\interfaces\libpq\libpq.rc.in'))
|
if (IsNewer('src\interfaces\libpq\libpq.rc','src\interfaces\libpq\libpq.rc.in'))
|
||||||
{
|
{
|
||||||
@ -279,12 +297,7 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY
|
|||||||
chdir('..\..\..');
|
chdir('..\..\..');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (IsNewer('src\interfaces\ecpg\preproc\preproc.y','src\backend\parser\gram.y'))
|
||||||
IsNewer(
|
|
||||||
'src\interfaces\ecpg\preproc\preproc.y',
|
|
||||||
'src\backend\parser\gram.y'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
print "Generating preproc.y...\n";
|
print "Generating preproc.y...\n";
|
||||||
chdir('src\interfaces\ecpg\preproc');
|
chdir('src\interfaces\ecpg\preproc');
|
||||||
@ -307,8 +320,8 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY
|
|||||||
#define HAVE_LONG_LONG_INT_64
|
#define HAVE_LONG_LONG_INT_64
|
||||||
#define ENABLE_THREAD_SAFETY 1
|
#define ENABLE_THREAD_SAFETY 1
|
||||||
EOF
|
EOF
|
||||||
print O "#define USE_INTEGER_DATETIMES 1\n" if ($self->{options}->{integer_datetimes});
|
print O "#define USE_INTEGER_DATETIMES 1\n" if ($self->{options}->{integer_datetimes});
|
||||||
print O "#endif\n";
|
print O "#endif\n";
|
||||||
close(O);
|
close(O);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -346,7 +359,9 @@ EOF
|
|||||||
print "Generating postgres.bki and schemapg.h...\n";
|
print "Generating postgres.bki and schemapg.h...\n";
|
||||||
chdir('src\backend\catalog');
|
chdir('src\backend\catalog');
|
||||||
my $bki_srcs = join(' ../../../src/include/catalog/', @allbki);
|
my $bki_srcs = join(' ../../../src/include/catalog/', @allbki);
|
||||||
system("perl genbki.pl -I../../../src/include/catalog --set-version=$self->{majorver} $bki_srcs");
|
system(
|
||||||
|
"perl genbki.pl -I../../../src/include/catalog --set-version=$self->{majorver} $bki_srcs"
|
||||||
|
);
|
||||||
chdir('..\..\..');
|
chdir('..\..\..');
|
||||||
copyFile('src\backend\catalog\schemapg.h', 'src\include\catalog\schemapg.h');
|
copyFile('src\backend\catalog\schemapg.h', 'src\include\catalog\schemapg.h');
|
||||||
last;
|
last;
|
||||||
@ -417,7 +432,7 @@ sub AddProject
|
|||||||
{
|
{
|
||||||
$proj->AddIncludeDir($self->{options}->{iconv} . '\include');
|
$proj->AddIncludeDir($self->{options}->{iconv} . '\include');
|
||||||
$proj->AddLibrary($self->{options}->{iconv} . '\lib\iconv.lib');
|
$proj->AddLibrary($self->{options}->{iconv} . '\lib\iconv.lib');
|
||||||
}
|
}
|
||||||
if ($self->{options}->{xml})
|
if ($self->{options}->{xml})
|
||||||
{
|
{
|
||||||
$proj->AddIncludeDir($self->{options}->{xml} . '\include');
|
$proj->AddIncludeDir($self->{options}->{xml} . '\include');
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
|
|
||||||
# -*-perl-*- hey - emacs - this is a perl file
|
# -*-perl-*- hey - emacs - this is a perl file
|
||||||
|
|
||||||
# $PostgreSQL: pgsql/src/tools/msvc/build.pl,v 1.2 2010/01/05 13:31:58 mha Exp $
|
# $PostgreSQL: pgsql/src/tools/msvc/build.pl,v 1.3 2010/04/09 13:05:58 mha Exp $
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
{
|
{
|
||||||
|
|
||||||
chdir("../../..") if (-d "../msvc" && -d "../../../src");
|
chdir("../../..") if (-d "../msvc" && -d "../../../src");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +29,6 @@ elsif (-e "./buildenv.pl" )
|
|||||||
require "./buildenv.pl";
|
require "./buildenv.pl";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# set up the project
|
# set up the project
|
||||||
our $config;
|
our $config;
|
||||||
require "config_default.pl";
|
require "config_default.pl";
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
my @def;
|
my @def;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Script that generates a .DEF file for all objects in a directory
|
# Script that generates a .DEF file for all objects in a directory
|
||||||
#
|
#
|
||||||
# $PostgreSQL: pgsql/src/tools/msvc/gendef.pl,v 1.9 2010/01/01 17:34:25 mha Exp $
|
# $PostgreSQL: pgsql/src/tools/msvc/gendef.pl,v 1.10 2010/04/09 13:05:58 mha Exp $
|
||||||
#
|
#
|
||||||
|
|
||||||
die "Usage: gendef.pl <modulepath> <platform>\n" unless
|
die "Usage: gendef.pl <modulepath> <platform>\n"
|
||||||
(($ARGV[0] =~ /\\([^\\]+$)/) && ($ARGV[1] == 'Win32' || $ARGV[1] == 'x64'));
|
unless(($ARGV[0] =~ /\\([^\\]+$)/) && ($ARGV[1] == 'Win32' || $ARGV[1] == 'x64'));
|
||||||
my $defname = uc $1;
|
my $defname = uc $1;
|
||||||
my $platform = $ARGV[1];
|
my $platform = $ARGV[1];
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
# -*-perl-*- hey - emacs - this is a perl file
|
# -*-perl-*- hey - emacs - this is a perl file
|
||||||
|
|
||||||
# $PostgreSQL: pgsql/src/tools/msvc/vcregress.pl,v 1.14 2010/03/02 17:06:51 adunstan Exp $
|
# $PostgreSQL: pgsql/src/tools/msvc/vcregress.pl,v 1.15 2010/04/09 13:05:58 mha Exp $
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
|
|
||||||
@ -47,8 +47,8 @@ $ENV{PATH} = "../../../$Config/libpq;../../$Config/libpq;$ENV{PATH}";
|
|||||||
my $schedule = shift;
|
my $schedule = shift;
|
||||||
unless ($schedule)
|
unless ($schedule)
|
||||||
{
|
{
|
||||||
$schedule = "serial";
|
$schedule = "serial";
|
||||||
$schedule = "parallel" if ($what eq 'CHECK' || $what =~ /PARALLEL/);
|
$schedule = "parallel" if ($what eq 'CHECK' || $what =~ /PARALLEL/);
|
||||||
}
|
}
|
||||||
|
|
||||||
my $topdir = getcwd();
|
my $topdir = getcwd();
|
||||||
@ -61,7 +61,7 @@ $maxconn = "--max_connections=$ENV{MAX_CONNECTIONS}"
|
|||||||
|
|
||||||
my $temp_config = "";
|
my $temp_config = "";
|
||||||
$temp_config = "--temp-config=\"$ENV{TEMP_CONFIG}\""
|
$temp_config = "--temp-config=\"$ENV{TEMP_CONFIG}\""
|
||||||
if $ENV{TEMP_CONFIG};
|
if $ENV{TEMP_CONFIG};
|
||||||
|
|
||||||
chdir "src/test/regress";
|
chdir "src/test/regress";
|
||||||
|
|
||||||
@ -86,12 +86,9 @@ exit 0;
|
|||||||
sub installcheck
|
sub installcheck
|
||||||
{
|
{
|
||||||
my @args = (
|
my @args = (
|
||||||
"../../../$Config/pg_regress/pg_regress",
|
"../../../$Config/pg_regress/pg_regress","--dlpath=.",
|
||||||
"--dlpath=.",
|
"--psqldir=../../../$Config/psql","--schedule=${schedule}_schedule",
|
||||||
"--psqldir=../../../$Config/psql",
|
"--multibyte=SQL_ASCII","--no-locale"
|
||||||
"--schedule=${schedule}_schedule",
|
|
||||||
"--multibyte=SQL_ASCII",
|
|
||||||
"--no-locale"
|
|
||||||
);
|
);
|
||||||
push(@args,$maxconn) if $maxconn;
|
push(@args,$maxconn) if $maxconn;
|
||||||
system(@args);
|
system(@args);
|
||||||
@ -102,17 +99,13 @@ sub installcheck
|
|||||||
sub check
|
sub check
|
||||||
{
|
{
|
||||||
my @args = (
|
my @args = (
|
||||||
"../../../$Config/pg_regress/pg_regress",
|
"../../../$Config/pg_regress/pg_regress","--dlpath=.",
|
||||||
"--dlpath=.",
|
"--psqldir=../../../$Config/psql","--schedule=${schedule}_schedule",
|
||||||
"--psqldir=../../../$Config/psql",
|
"--multibyte=SQL_ASCII","--no-locale",
|
||||||
"--schedule=${schedule}_schedule",
|
"--temp-install=./tmp_check","--top-builddir=\"$topdir\""
|
||||||
"--multibyte=SQL_ASCII",
|
|
||||||
"--no-locale",
|
|
||||||
"--temp-install=./tmp_check",
|
|
||||||
"--top-builddir=\"$topdir\""
|
|
||||||
);
|
);
|
||||||
push(@args,$maxconn) if $maxconn;
|
push(@args,$maxconn) if $maxconn;
|
||||||
push(@args,$temp_config) if $temp_config;
|
push(@args,$temp_config) if $temp_config;
|
||||||
system(@args);
|
system(@args);
|
||||||
my $status = $? >>8;
|
my $status = $? >>8;
|
||||||
exit $status if $status;
|
exit $status if $status;
|
||||||
@ -153,24 +146,25 @@ sub plcheck
|
|||||||
my $lang = $pl eq 'tcl' ? 'pltcl' : $pl;
|
my $lang = $pl eq 'tcl' ? 'pltcl' : $pl;
|
||||||
next unless -d "../../$Config/$lang";
|
next unless -d "../../$Config/$lang";
|
||||||
$lang = 'plpythonu' if $lang eq 'plpython';
|
$lang = 'plpythonu' if $lang eq 'plpython';
|
||||||
my @lang_args = ( "--load-language=$lang" );
|
my @lang_args = ("--load-language=$lang");
|
||||||
chdir $pl;
|
chdir $pl;
|
||||||
my @tests = fetchTests();
|
my @tests = fetchTests();
|
||||||
if ($lang eq 'plperl')
|
if ($lang eq 'plperl')
|
||||||
{
|
{
|
||||||
# run both trusted and untrusted perl tests
|
|
||||||
push (@lang_args, "--load-language=plperlu");
|
|
||||||
|
|
||||||
# assume we're using this perl to built postgres
|
# run both trusted and untrusted perl tests
|
||||||
# test if we can run two interpreters in one backend, and if so
|
push(@lang_args, "--load-language=plperlu");
|
||||||
# run the trusted/untrusted interaction tests
|
|
||||||
use Config;
|
# assume we're using this perl to built postgres
|
||||||
if ($Config{usemultiplicity} eq 'define')
|
# test if we can run two interpreters in one backend, and if so
|
||||||
{
|
# run the trusted/untrusted interaction tests
|
||||||
push(@tests,'plperl_plperlu');
|
use Config;
|
||||||
}
|
if ($Config{usemultiplicity} eq 'define')
|
||||||
}
|
{
|
||||||
print "============================================================\n";
|
push(@tests,'plperl_plperlu');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print "============================================================\n";
|
||||||
print "Checking $lang\n";
|
print "Checking $lang\n";
|
||||||
my @args = (
|
my @args = (
|
||||||
"../../../$Config/pg_regress/pg_regress",
|
"../../../$Config/pg_regress/pg_regress",
|
||||||
@ -192,15 +186,16 @@ sub contribcheck
|
|||||||
my $mstat = 0;
|
my $mstat = 0;
|
||||||
foreach my $module (glob("*"))
|
foreach my $module (glob("*"))
|
||||||
{
|
{
|
||||||
next if ($module eq 'xml2' && ! $config->{xml});
|
next if ($module eq 'xml2' && !$config->{xml});
|
||||||
next unless -d "$module/sql" &&
|
next
|
||||||
-d "$module/expected" &&
|
unless -d "$module/sql"
|
||||||
(-f "$module/GNUmakefile" || -f "$module/Makefile");
|
&&-d "$module/expected"
|
||||||
|
&&(-f "$module/GNUmakefile" || -f "$module/Makefile");
|
||||||
chdir $module;
|
chdir $module;
|
||||||
print "============================================================\n";
|
print "============================================================\n";
|
||||||
print "Checking $module\n";
|
print "Checking $module\n";
|
||||||
my @tests = fetchTests();
|
my @tests = fetchTests();
|
||||||
my @opts = fetchRegressOpts();
|
my @opts = fetchRegressOpts();
|
||||||
my @args = (
|
my @args = (
|
||||||
"../../$Config/pg_regress/pg_regress",
|
"../../$Config/pg_regress/pg_regress",
|
||||||
"--psqldir=../../$Config/psql",
|
"--psqldir=../../$Config/psql",
|
||||||
@ -223,14 +218,15 @@ sub fetchRegressOpts
|
|||||||
local($/) = undef;
|
local($/) = undef;
|
||||||
my $m = <$handle>;
|
my $m = <$handle>;
|
||||||
close($handle);
|
close($handle);
|
||||||
my @opts;
|
my @opts;
|
||||||
if ($m =~ /^\s*REGRESS_OPTS\s*=(.*)/m)
|
if ($m =~ /^\s*REGRESS_OPTS\s*=(.*)/m)
|
||||||
{
|
{
|
||||||
# ignore options that use makefile variables - can't handle those
|
|
||||||
# ignore anything that isn't an option staring with --
|
# ignore options that use makefile variables - can't handle those
|
||||||
@opts = grep { $_ !~ /\$\(/ && $_ =~ /^--/ } split(/\s+/,$1);
|
# ignore anything that isn't an option staring with --
|
||||||
}
|
@opts = grep { $_ !~ /\$\(/ && $_ =~ /^--/ } split(/\s+/,$1);
|
||||||
return @opts;
|
}
|
||||||
|
return @opts;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub fetchTests
|
sub fetchTests
|
||||||
@ -287,7 +283,7 @@ sub GetTests
|
|||||||
sub usage
|
sub usage
|
||||||
{
|
{
|
||||||
print STDERR
|
print STDERR
|
||||||
"Usage: vcregress.pl ",
|
"Usage: vcregress.pl ",
|
||||||
"<check|installcheck|plcheck|contribcheck|ecpgcheck> [schedule]\n" ;
|
"<check|installcheck|plcheck|contribcheck|ecpgcheck> [schedule]\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user