Perltidy run over the MSVC build system files, to clean up code formatting

and indentation styles.
This commit is contained in:
Magnus Hagander 2010-04-09 13:05:58 +00:00
parent 7c60637565
commit 93f35f0955
7 changed files with 284 additions and 245 deletions

View File

@ -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 ".";
} }
} }

View File

@ -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);
} }

View File

@ -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));
} }
} }
} }
@ -125,10 +127,10 @@ sub AddReference
sub AddLibrary sub AddLibrary
{ {
my ($self, $lib, $dbgsuffix) = @_; my ($self, $lib, $dbgsuffix) = @_;
if ($lib =~ m/\s/) if ($lib =~ m/\s/)
{ {
$lib = '&quot;' . $lib . "&quot;"; $lib = '&quot;' . $lib . "&quot;";
} }
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>";

View File

@ -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,18 +176,15 @@ 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 (", if ($self->{options}->{float4byval})
$self->{options}->{wal_segsize}," * 1024 * 1024)\n";
if ($self->{options}->{float4byval})
{ {
print O "#define USE_FLOAT4_BYVAL 1\n"; print O "#define USE_FLOAT4_BYVAL 1\n";
print O "#define FLOAT4PASSBYVAL true\n"; print O "#define FLOAT4PASSBYVAL true\n";
@ -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');

View File

@ -1,13 +1,13 @@
# -*-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");
} }
use lib "src/tools/msvc"; use lib "src/tools/msvc";
@ -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";

View File

@ -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];

View File

@ -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);
} }