my $solution;
my $libpgport;
+my $libpgcommon;
my $postgres;
my $libpq;
'pg_standby', 'pg_archivecleanup',
'pg_test_fsync', 'pg_test_timing',
'pg_upgrade', 'vacuumlo');
+my @contrib_uselibpgcommon = (
+ 'oid2name', 'pgbench',
+ 'pg_standby', 'pg_archivecleanup',
+ 'pg_test_fsync', 'pg_test_timing',
+ 'pg_upgrade', 'vacuumlo');
my $contrib_extralibs = { 'pgbench' => ['wsock32.lib'] };
my $contrib_extraincludes =
{ 'tsearch2' => ['contrib/tsearch2'], 'dblink' => ['src/backend'] };
sprompt.c tar.c thread.c getopt.c getopt_long.c dirent.c rint.c win32env.c
win32error.c win32setlocale.c);
+ our @pgcommonfiles = qw(
+ fe_memutils.c);
+
+ our @pgcommonbkndfiles = qw();
+
$libpgport = $solution->AddProject('libpgport', 'lib', 'misc');
$libpgport->AddDefine('FRONTEND');
$libpgport->AddFiles('src\port', @pgportfiles);
+ $libpgcommon = $solution->AddProject('libpgcommon', 'lib', 'misc');
+ $libpgcommon->AddDefine('FRONTEND');
+ $libpgcommon->AddFiles('src\common', @pgcommonfiles);
+
$postgres = $solution->AddProject('postgres', 'exe', '', 'src\backend');
$postgres->AddIncludeDir('src\backend');
$postgres->AddDir('src\backend\port\win32');
$postgres->ReplaceFile('src\backend\port\pg_latch.c',
'src\backend\port\win32_latch.c');
$postgres->AddFiles('src\port', @pgportfiles);
+ $postgres->AddFiles('src\common', @pgcommonbkndfiles);
$postgres->AddDir('src\timezone');
$postgres->AddFiles('src\backend\parser', 'scan.l', 'gram.y');
$postgres->AddFiles('src\backend\bootstrap', 'bootscanner.l',
$ecpg->AddDefine('MINOR_VERSION=9');
$ecpg->AddDefine('PATCHLEVEL=0');
$ecpg->AddDefine('ECPG_COMPILE');
- $ecpg->AddReference($libpgport);
+ $ecpg->AddReference($libpgport, $libpgcommon);
my $pgregress_ecpg =
$solution->AddProject('pg_regress_ecpg', 'exe', 'misc');
$pgregress_ecpg->AddIncludeDir('src\test\regress');
$pgregress_ecpg->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
$pgregress_ecpg->AddDefine('FRONTEND');
- $pgregress_ecpg->AddReference($libpgport);
+ $pgregress_ecpg->AddReference($libpgport, $libpgcommon);
my $isolation_tester =
$solution->AddProject('isolationtester', 'exe', 'misc');
$pgregress_isolation->AddIncludeDir('src\test\regress');
$pgregress_isolation->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
$pgregress_isolation->AddDefine('FRONTEND');
- $pgregress_isolation->AddReference($libpgport);
+ $pgregress_isolation->AddReference($libpgport, $libpgcommon);
# src/bin
my $initdb = AddSimpleFrontend('initdb');
$pgdumpall->AddIncludeDir('src\backend');
$pgdumpall->AddFile('src\bin\pg_dump\pg_dumpall.c');
$pgdumpall->AddFile('src\bin\pg_dump\dumputils.c');
- $pgdumpall->AddFile('src\bin\pg_dump\dumpmem.c');
$pgdumpall->AddFile('src\bin\pg_dump\keywords.c');
$pgdumpall->AddFile('src\backend\parser\kwlookup.c');
my $zic = $solution->AddProject('zic', 'exe', 'utils');
$zic->AddFiles('src\timezone', 'zic.c', 'ialloc.c', 'scheck.c',
'localtime.c');
- $zic->AddReference($libpgport);
+ $zic->AddReference($libpgport, $libpgcommon);
if ($solution->{options}->{xml})
{
$proj->AddIncludeDir('src\interfaces\libpq');
$proj->AddIncludeDir('src\bin\pg_dump');
$proj->AddIncludeDir('src\bin\psql');
- $proj->AddReference($libpq, $libpgport);
+ $proj->AddReference($libpq, $libpgport, $libpgcommon);
$proj->AddResourceFile('src\bin\scripts', 'PostgreSQL Utility');
}
$pgregress->AddFile('src\test\regress\pg_regress_main.c');
$pgregress->AddIncludeDir('src\port');
$pgregress->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
- $pgregress->AddReference($libpgport);
+ $pgregress->AddReference($libpgport, $libpgcommon);
$solution->Save();
return $solution->{vcver};
my $p = $solution->AddProject($n, 'exe', 'bin');
$p->AddDir('src\bin\\' . $n);
- $p->AddReference($libpgport);
+ $p->AddReference($libpgport, $libpgcommon);
if ($uselibpq)
{
$p->AddIncludeDir('src\interfaces\libpq');
{
$proj->AddReference($libpgport);
}
+ if (grep { /^$n$/ } @contrib_uselibpgcommon)
+ {
+ $proj->AddReference($libpgcommon);
+ }
if ($contrib_extralibs->{$n})
{
foreach my $l (@{ $contrib_extralibs->{$n} })