I understand that on Windows, you can use forward slashes in path names
interchangeably with backward slashes (except possibly in the shell). I
have developed the attached patch to change the msvc build code to use
forward slashes consistently. Together with the other attached patch,
which is an unpolished hack, this allows me to run the build.pl script
on not-Windows. It won't actually build, but it will create all the
project files. That way, I can check whether some makefile hackery
would break the Windows build. Could someone verify this please?
>From 46c7e31ee49f32fb373a8bd10c3bd5e777359053 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <[email protected]>
Date: Sat, 14 Feb 2015 22:42:41 -0500
Subject: [PATCH 1/2] Workarounds for lack of Win32 module
---
src/tools/msvc/Mkvcbuild.pm | 2 +-
src/tools/msvc/Project.pm | 2 +-
src/tools/msvc/Solution.pm | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index dba9b63..879589d 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -6,7 +6,7 @@ package Mkvcbuild;
# src/tools/msvc/Mkvcbuild.pm
#
use Carp;
-use Win32;
+#use Win32;
use strict;
use warnings;
use Project;
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm
index b9b5a23..6d84d89 100644
--- a/src/tools/msvc/Project.pm
+++ b/src/tools/msvc/Project.pm
@@ -21,7 +21,7 @@ sub _new
my $self = {
name => $name,
type => $type,
- guid => Win32::GuidGen(),
+ guid => $^O eq 'MSWin32' ? Win32::GuidGen() : '{FIXME}',
files => {},
references => [],
libraries => [],
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 39e41f6..9bd864c 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -562,7 +562,7 @@ EOF
}
if ($fld ne "")
{
- $flduid{$fld} = Win32::GuidGen();
+ $flduid{$fld} = $^O eq 'MSWin32' ? Win32::GuidGen() : '{FIXME}';
print SLN <<EOF;
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "$fld", "$fld", "$flduid{$fld}"
EndProject
--
2.3.0
>From 1898bb7812920c64d19476a77db8adaaa54cba46 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <[email protected]>
Date: Sat, 14 Feb 2015 22:43:03 -0500
Subject: [PATCH 2/2] Use forward slash instead of backward slash in msvc build
code
---
src/tools/msvc/MSBuildProject.pm | 2 +-
src/tools/msvc/Mkvcbuild.pm | 322 +++++++++++++++++++--------------------
src/tools/msvc/Project.pm | 41 +++--
src/tools/msvc/Solution.pm | 138 ++++++++---------
4 files changed, 250 insertions(+), 253 deletions(-)
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index 37958f9..a16f9ac 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -127,7 +127,7 @@ EOF
foreach my $fileNameWithPath (sort keys %{ $self->{files} })
{
confess "Bad format filename '$fileNameWithPath'\n"
- unless ($fileNameWithPath =~ /^(.*)\\([^\\]+)\.(c|cpp|y|l|rc)$/);
+ unless ($fileNameWithPath =~ m!^(.*)/([^/]+)\.(c|cpp|y|l|rc)$!);
my $dir = $1;
my $fileName = $2;
if ($fileNameWithPath =~ /\.y$/ or $fileNameWithPath =~ /\.l$/)
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 879589d..8820d3a 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -56,9 +56,9 @@ sub mkvcbuild
{
our $config = shift;
- chdir('..\..\..') if (-d '..\msvc' && -d '..\..\..\src');
+ chdir('../../..') if (-d '../msvc' && -d '../../../src');
die 'Must run from root or msvc directory'
- unless (-d 'src\tools\msvc' && -d 'src');
+ unless (-d 'src/tools/msvc' && -d 'src');
my $vsVersion = DetermineVisualStudioVersion();
@@ -85,36 +85,36 @@ sub mkvcbuild
$libpgport = $solution->AddProject('libpgport', 'lib', 'misc');
$libpgport->AddDefine('FRONTEND');
- $libpgport->AddFiles('src\port', @pgportfiles);
+ $libpgport->AddFiles('src/port', @pgportfiles);
$libpgcommon = $solution->AddProject('libpgcommon', 'lib', 'misc');
$libpgcommon->AddDefine('FRONTEND');
- $libpgcommon->AddFiles('src\common', @pgcommonfrontendfiles);
+ $libpgcommon->AddFiles('src/common', @pgcommonfrontendfiles);
- $postgres = $solution->AddProject('postgres', 'exe', '', 'src\backend');
- $postgres->AddIncludeDir('src\backend');
- $postgres->AddDir('src\backend\port\win32');
- $postgres->AddFile('src\backend\utils\fmgrtab.c');
+ $postgres = $solution->AddProject('postgres', 'exe', '', 'src/backend');
+ $postgres->AddIncludeDir('src/backend');
+ $postgres->AddDir('src/backend/port/win32');
+ $postgres->AddFile('src/backend/utils/fmgrtab.c');
$postgres->ReplaceFile(
- 'src\backend\port\dynloader.c',
- 'src\backend\port\dynloader\win32.c');
- $postgres->ReplaceFile('src\backend\port\pg_sema.c',
- 'src\backend\port\win32_sema.c');
- $postgres->ReplaceFile('src\backend\port\pg_shmem.c',
- 'src\backend\port\win32_shmem.c');
- $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');
- # We need source files from src\timezone, but that directory's resource
+ 'src/backend/port/dynloader.c',
+ 'src/backend/port/dynloader/win32.c');
+ $postgres->ReplaceFile('src/backend/port/pg_sema.c',
+ 'src/backend/port/win32_sema.c');
+ $postgres->ReplaceFile('src/backend/port/pg_shmem.c',
+ 'src/backend/port/win32_shmem.c');
+ $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');
+ # We need source files from src/timezone, but that directory's resource
# file pertains to "zic", not to the backend.
- $postgres->RemoveFile('src\timezone\win32ver.rc');
- $postgres->AddFiles('src\backend\parser', 'scan.l', 'gram.y');
- $postgres->AddFiles('src\backend\bootstrap', 'bootscanner.l',
+ $postgres->RemoveFile('src/timezone/win32ver.rc');
+ $postgres->AddFiles('src/backend/parser', 'scan.l', 'gram.y');
+ $postgres->AddFiles('src/backend/bootstrap', 'bootscanner.l',
'bootparse.y');
- $postgres->AddFiles('src\backend\utils\misc', 'guc-file.l');
- $postgres->AddFiles('src\backend\replication', 'repl_scanner.l',
+ $postgres->AddFiles('src/backend/utils\misc', 'guc-file.l');
+ $postgres->AddFiles('src/backend/replication', 'repl_scanner.l',
'repl_gram.y');
$postgres->AddDefine('BUILDING_DLL');
$postgres->AddLibrary('secur32.lib');
@@ -125,30 +125,30 @@ sub mkvcbuild
# if building without OpenSSL
if (!$solution->{options}->{openssl})
{
- $postgres->RemoveFile('src\backend\libpq\be-secure-openssl.c');
+ $postgres->RemoveFile('src/backend/libpq/be-secure-openssl.c');
}
my $snowball = $solution->AddProject('dict_snowball', 'dll', '',
- 'src\backend\snowball');
+ 'src/backend/snowball');
# This Makefile uses VPATH to find most source files in a subdirectory.
$snowball->RelocateFiles(
- 'src\backend\snowball\libstemmer',
+ 'src/backend/snowball/libstemmer',
sub {
return shift !~ /(dict_snowball.c|win32ver.rc)$/;
});
- $snowball->AddIncludeDir('src\include\snowball');
+ $snowball->AddIncludeDir('src/include/snowball');
$snowball->AddReference($postgres);
my $plpgsql =
- $solution->AddProject('plpgsql', 'dll', 'PLs', 'src\pl\plpgsql\src');
- $plpgsql->AddFiles('src\pl\plpgsql\src', 'pl_gram.y');
+ $solution->AddProject('plpgsql', 'dll', 'PLs', 'src/pl/plpgsql/src');
+ $plpgsql->AddFiles('src/pl/plpgsql/src', 'pl_gram.y');
$plpgsql->AddReference($postgres);
if ($solution->{options}->{perl})
{
- my $plperlsrc = "src\\pl\\plperl\\";
+ my $plperlsrc = "src/pl/plperl/";
my $plperl =
- $solution->AddProject('plperl', 'dll', 'PLs', 'src\pl\plperl');
+ $solution->AddProject('plperl', 'dll', 'PLs', 'src/pl/plperl');
$plperl->AddIncludeDir($solution->{options}->{perl} . '/lib/CORE');
$plperl->AddDefine('PLPERL_HAVE_UID_GID');
foreach my $xs ('SPI.xs', 'Util.xs')
@@ -173,15 +173,15 @@ sub mkvcbuild
}
}
if (Solution::IsNewer(
- 'src\pl\plperl\perlchunks.h',
- 'src\pl\plperl\plc_perlboot.pl')
+ 'src/pl/plperl/perlchunks.h',
+ 'src/pl/plperl/plc_perlboot.pl')
|| Solution::IsNewer(
- 'src\pl\plperl\perlchunks.h',
- 'src\pl\plperl\plc_trusted.pl'))
+ 'src/pl/plperl/perlchunks.h',
+ 'src/pl/plperl/plc_trusted.pl'))
{
- print 'Building src\pl\plperl\perlchunks.h ...' . "\n";
+ print 'Building src/pl/plperl/perlchunks.h ...' . "\n";
my $basedir = getcwd;
- chdir 'src\pl\plperl';
+ chdir 'src/pl/plperl';
system( $solution->{options}->{perl}
. '/bin/perl '
. 'text2macro.pl '
@@ -189,29 +189,29 @@ sub mkvcbuild
. 'plc_perlboot.pl plc_trusted.pl '
. '>perlchunks.h');
chdir $basedir;
- if ((!(-f 'src\pl\plperl\perlchunks.h'))
- || -z 'src\pl\plperl\perlchunks.h')
+ if ((!(-f 'src/pl/plperl/perlchunks.h'))
+ || -z 'src/pl/plperl/perlchunks.h')
{
- unlink('src\pl\plperl\perlchunks.h'); # if zero size
+ unlink('src/pl/plperl/perlchunks.h'); # if zero size
die 'Failed to create perlchunks.h' . "\n";
}
}
if (Solution::IsNewer(
- 'src\pl\plperl\plperl_opmask.h',
- 'src\pl\plperl\plperl_opmask.pl'))
+ 'src/pl/plperl/plperl_opmask.h',
+ 'src/pl/plperl/plperl_opmask.pl'))
{
- print 'Building src\pl\plperl\plperl_opmask.h ...' . "\n";
+ print 'Building src/pl/plperl/plperl_opmask.h ...' . "\n";
my $basedir = getcwd;
- chdir 'src\pl\plperl';
+ chdir 'src/pl/plperl';
system( $solution->{options}->{perl}
. '/bin/perl '
. 'plperl_opmask.pl '
. 'plperl_opmask.h');
chdir $basedir;
- if ((!(-f 'src\pl\plperl\plperl_opmask.h'))
- || -z 'src\pl\plperl\plperl_opmask.h')
+ if ((!(-f 'src/pl/plperl/plperl_opmask.h'))
+ || -z 'src/pl/plperl/plperl_opmask.h')
{
- unlink('src\pl\plperl\plperl_opmask.h'); # if zero size
+ unlink('src/pl/plperl/plperl_opmask.h'); # if zero size
die 'Failed to create plperl_opmask.h' . "\n";
}
}
@@ -276,62 +276,62 @@ sub mkvcbuild
}
$libpq = $solution->AddProject('libpq', 'dll', 'interfaces',
- 'src\interfaces\libpq');
+ 'src/interfaces/libpq');
$libpq->AddDefine('FRONTEND');
$libpq->AddDefine('UNSAFE_STAT_OK');
- $libpq->AddIncludeDir('src\port');
+ $libpq->AddIncludeDir('src/port');
$libpq->AddLibrary('secur32.lib');
$libpq->AddLibrary('ws2_32.lib');
$libpq->AddLibrary('wldap32.lib') if ($solution->{options}->{ldap});
- $libpq->UseDef('src\interfaces\libpq\libpqdll.def');
- $libpq->ReplaceFile('src\interfaces\libpq\libpqrc.c',
- 'src\interfaces\libpq\libpq.rc');
+ $libpq->UseDef('src/interfaces/libpq/libpqdll.def');
+ $libpq->ReplaceFile('src/interfaces/libpq/libpqrc.c',
+ 'src/interfaces/libpq/libpq.rc');
$libpq->AddReference($libpgport);
# The OBJS scraper doesn't know about ifdefs, so remove fe-secure-openssl.c
# if building without OpenSSL
if (!$solution->{options}->{openssl})
{
- $libpq->RemoveFile('src\interfaces\libpq\fe-secure-openssl.c');
+ $libpq->RemoveFile('src/interfaces/libpq/fe-secure-openssl.c');
}
my $libpqwalreceiver =
$solution->AddProject('libpqwalreceiver', 'dll', '',
- 'src\backend\replication\libpqwalreceiver');
- $libpqwalreceiver->AddIncludeDir('src\interfaces\libpq');
+ 'src/backend/replication/libpqwalreceiver');
+ $libpqwalreceiver->AddIncludeDir('src/interfaces/libpq');
$libpqwalreceiver->AddReference($postgres, $libpq);
my $pgtypes = $solution->AddProject(
'libpgtypes', 'dll',
- 'interfaces', 'src\interfaces\ecpg\pgtypeslib');
+ 'interfaces', 'src/interfaces/ecpg/pgtypeslib');
$pgtypes->AddDefine('FRONTEND');
$pgtypes->AddReference($libpgport);
- $pgtypes->UseDef('src\interfaces\ecpg\pgtypeslib\pgtypeslib.def');
- $pgtypes->AddIncludeDir('src\interfaces\ecpg\include');
+ $pgtypes->UseDef('src/interfaces/ecpg/pgtypeslib/pgtypeslib.def');
+ $pgtypes->AddIncludeDir('src/interfaces/ecpg/include');
my $libecpg = $solution->AddProject('libecpg', 'dll', 'interfaces',
- 'src\interfaces\ecpg\ecpglib');
+ 'src/interfaces/ecpg/ecpglib');
$libecpg->AddDefine('FRONTEND');
- $libecpg->AddIncludeDir('src\interfaces\ecpg\include');
- $libecpg->AddIncludeDir('src\interfaces\libpq');
- $libecpg->AddIncludeDir('src\port');
- $libecpg->UseDef('src\interfaces\ecpg\ecpglib\ecpglib.def');
+ $libecpg->AddIncludeDir('src/interfaces/ecpg/include');
+ $libecpg->AddIncludeDir('src/interfaces/libpq');
+ $libecpg->AddIncludeDir('src/port');
+ $libecpg->UseDef('src/interfaces/ecpg/ecpglib/ecpglib.def');
$libecpg->AddLibrary('ws2_32.lib');
$libecpg->AddReference($libpq, $pgtypes, $libpgport);
my $libecpgcompat = $solution->AddProject(
'libecpg_compat', 'dll',
- 'interfaces', 'src\interfaces\ecpg\compatlib');
- $libecpgcompat->AddIncludeDir('src\interfaces\ecpg\include');
- $libecpgcompat->AddIncludeDir('src\interfaces\libpq');
- $libecpgcompat->UseDef('src\interfaces\ecpg\compatlib\compatlib.def');
+ 'interfaces', 'src/interfaces/ecpg/compatlib');
+ $libecpgcompat->AddIncludeDir('src/interfaces/ecpg/include');
+ $libecpgcompat->AddIncludeDir('src/interfaces/libpq');
+ $libecpgcompat->UseDef('src/interfaces/ecpg/compatlib/compatlib.def');
$libecpgcompat->AddReference($pgtypes, $libecpg, $libpgport);
my $ecpg = $solution->AddProject('ecpg', 'exe', 'interfaces',
- 'src\interfaces\ecpg\preproc');
- $ecpg->AddIncludeDir('src\interfaces\ecpg\include');
- $ecpg->AddIncludeDir('src\interfaces\libpq');
- $ecpg->AddPrefixInclude('src\interfaces\ecpg\preproc');
- $ecpg->AddFiles('src\interfaces\ecpg\preproc', 'pgc.l', 'preproc.y');
+ 'src/interfaces/ecpg/preproc');
+ $ecpg->AddIncludeDir('src/interfaces/ecpg/include');
+ $ecpg->AddIncludeDir('src/interfaces/libpq');
+ $ecpg->AddPrefixInclude('src/interfaces/ecpg/preproc');
+ $ecpg->AddFiles('src/interfaces/ecpg/preproc', 'pgc.l', 'preproc.y');
$ecpg->AddDefine('MAJOR_VERSION=4');
$ecpg->AddDefine('MINOR_VERSION=11');
$ecpg->AddDefine('PATCHLEVEL=0');
@@ -340,63 +340,63 @@ sub mkvcbuild
my $pgregress_ecpg =
$solution->AddProject('pg_regress_ecpg', 'exe', 'misc');
- $pgregress_ecpg->AddFile('src\interfaces\ecpg\test\pg_regress_ecpg.c');
- $pgregress_ecpg->AddFile('src\test\regress\pg_regress.c');
- $pgregress_ecpg->AddIncludeDir('src\port');
- $pgregress_ecpg->AddIncludeDir('src\test\regress');
+ $pgregress_ecpg->AddFile('src/interfaces/ecpg/test/pg_regress_ecpg.c');
+ $pgregress_ecpg->AddFile('src/test/regress/pg_regress.c');
+ $pgregress_ecpg->AddIncludeDir('src/port');
+ $pgregress_ecpg->AddIncludeDir('src/test/regress');
$pgregress_ecpg->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
$pgregress_ecpg->AddDefine('FRONTEND');
$pgregress_ecpg->AddLibrary('ws2_32.lib');
- $pgregress_ecpg->AddDirResourceFile('src\interfaces\ecpg\test');
+ $pgregress_ecpg->AddDirResourceFile('src/interfaces/ecpg/test');
$pgregress_ecpg->AddReference($libpgcommon, $libpgport);
my $isolation_tester =
$solution->AddProject('isolationtester', 'exe', 'misc');
- $isolation_tester->AddFile('src\test\isolation\isolationtester.c');
- $isolation_tester->AddFile('src\test\isolation\specparse.y');
- $isolation_tester->AddFile('src\test\isolation\specscanner.l');
- $isolation_tester->AddFile('src\test\isolation\specparse.c');
- $isolation_tester->AddIncludeDir('src\test\isolation');
- $isolation_tester->AddIncludeDir('src\port');
- $isolation_tester->AddIncludeDir('src\test\regress');
- $isolation_tester->AddIncludeDir('src\interfaces\libpq');
+ $isolation_tester->AddFile('src/test/isolation/isolationtester.c');
+ $isolation_tester->AddFile('src/test/isolation/specparse.y');
+ $isolation_tester->AddFile('src/test/isolation/specscanner.l');
+ $isolation_tester->AddFile('src/test/isolation/specparse.c');
+ $isolation_tester->AddIncludeDir('src/test/isolation');
+ $isolation_tester->AddIncludeDir('src/port');
+ $isolation_tester->AddIncludeDir('src/test/regress');
+ $isolation_tester->AddIncludeDir('src/interfaces/libpq');
$isolation_tester->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
$isolation_tester->AddDefine('FRONTEND');
$isolation_tester->AddLibrary('ws2_32.lib');
- $isolation_tester->AddDirResourceFile('src\test\isolation');
+ $isolation_tester->AddDirResourceFile('src/test/isolation');
$isolation_tester->AddReference($libpq, $libpgcommon, $libpgport);
my $pgregress_isolation =
$solution->AddProject('pg_isolation_regress', 'exe', 'misc');
- $pgregress_isolation->AddFile('src\test\isolation\isolation_main.c');
- $pgregress_isolation->AddFile('src\test\regress\pg_regress.c');
- $pgregress_isolation->AddIncludeDir('src\port');
- $pgregress_isolation->AddIncludeDir('src\test\regress');
+ $pgregress_isolation->AddFile('src/test/isolation/isolation_main.c');
+ $pgregress_isolation->AddFile('src/test/regress/pg_regress.c');
+ $pgregress_isolation->AddIncludeDir('src/port');
+ $pgregress_isolation->AddIncludeDir('src/test/regress');
$pgregress_isolation->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
$pgregress_isolation->AddDefine('FRONTEND');
$pgregress_isolation->AddLibrary('ws2_32.lib');
- $pgregress_isolation->AddDirResourceFile('src\test\isolation');
+ $pgregress_isolation->AddDirResourceFile('src/test/isolation');
$pgregress_isolation->AddReference($libpgcommon, $libpgport);
# src/bin
my $initdb = AddSimpleFrontend('initdb');
- $initdb->AddIncludeDir('src\interfaces\libpq');
- $initdb->AddIncludeDir('src\timezone');
+ $initdb->AddIncludeDir('src/interfaces/libpq');
+ $initdb->AddIncludeDir('src/timezone');
$initdb->AddDefine('FRONTEND');
$initdb->AddLibrary('ws2_32.lib');
my $pgbasebackup = AddSimpleFrontend('pg_basebackup', 1);
- $pgbasebackup->AddFile('src\bin\pg_basebackup\pg_basebackup.c');
+ $pgbasebackup->AddFile('src/bin/pg_basebackup/pg_basebackup.c');
$pgbasebackup->AddLibrary('ws2_32.lib');
my $pgreceivexlog = AddSimpleFrontend('pg_basebackup', 1);
$pgreceivexlog->{name} = 'pg_receivexlog';
- $pgreceivexlog->AddFile('src\bin\pg_basebackup\pg_receivexlog.c');
+ $pgreceivexlog->AddFile('src/bin/pg_basebackup/pg_receivexlog.c');
$pgreceivexlog->AddLibrary('ws2_32.lib');
my $pgrecvlogical = AddSimpleFrontend('pg_basebackup', 1);
$pgrecvlogical->{name} = 'pg_recvlogical';
- $pgrecvlogical->AddFile('src\bin\pg_basebackup\pg_recvlogical.c');
+ $pgrecvlogical->AddFile('src/bin/pg_basebackup/pg_recvlogical.c');
$pgrecvlogical->AddLibrary('ws2_32.lib');
my $pgconfig = AddSimpleFrontend('pg_config');
@@ -408,26 +408,26 @@ sub mkvcbuild
my $pgreset = AddSimpleFrontend('pg_resetxlog');
my $pgevent = $solution->AddProject('pgevent', 'dll', 'bin');
- $pgevent->AddFiles('src\bin\pgevent', 'pgevent.c', 'pgmsgevent.rc');
- $pgevent->AddResourceFile('src\bin\pgevent', 'Eventlog message formatter',
+ $pgevent->AddFiles('src/bin/pgevent', 'pgevent.c', 'pgmsgevent.rc');
+ $pgevent->AddResourceFile('src/bin/pgevent', 'Eventlog message formatter',
'win32');
- $pgevent->RemoveFile('src\bin\pgevent\win32ver.rc');
- $pgevent->UseDef('src\bin\pgevent\pgevent.def');
+ $pgevent->RemoveFile('src/bin/pgevent/win32ver.rc');
+ $pgevent->UseDef('src/bin/pgevent/pgevent.def');
$pgevent->DisableLinkerWarnings('4104');
my $psql = AddSimpleFrontend('psql', 1);
- $psql->AddIncludeDir('src\bin\pg_dump');
- $psql->AddIncludeDir('src\backend');
- $psql->AddFile('src\bin\psql\psqlscan.l');
+ $psql->AddIncludeDir('src/bin/pg_dump');
+ $psql->AddIncludeDir('src/backend');
+ $psql->AddFile('src/bin/psql/psqlscan.l');
$psql->AddLibrary('ws2_32.lib');
my $pgdump = AddSimpleFrontend('pg_dump', 1);
- $pgdump->AddIncludeDir('src\backend');
- $pgdump->AddFile('src\bin\pg_dump\pg_dump.c');
- $pgdump->AddFile('src\bin\pg_dump\common.c');
- $pgdump->AddFile('src\bin\pg_dump\pg_dump_sort.c');
- $pgdump->AddFile('src\bin\pg_dump\keywords.c');
- $pgdump->AddFile('src\backend\parser\kwlookup.c');
+ $pgdump->AddIncludeDir('src/backend');
+ $pgdump->AddFile('src/bin/pg_dump/pg_dump.c');
+ $pgdump->AddFile('src/bin/pg_dump/common.c');
+ $pgdump->AddFile('src/bin/pg_dump/pg_dump_sort.c');
+ $pgdump->AddFile('src/bin/pg_dump/keywords.c');
+ $pgdump->AddFile('src/backend/parser/kwlookup.c');
$pgdump->AddLibrary('ws2_32.lib');
my $pgdumpall = AddSimpleFrontend('pg_dump', 1);
@@ -436,41 +436,41 @@ sub mkvcbuild
# pg_dump and pg_restore.
# So remove their sources from the object, keeping the other setup that
# AddSimpleFrontend() has done.
- my @nodumpall = grep { m/src\\bin\\pg_dump\\.*\.c$/ }
+ my @nodumpall = grep { m!src/bin/pg_dump/.*\.c$! }
keys %{ $pgdumpall->{files} };
delete @{ $pgdumpall->{files} }{@nodumpall};
$pgdumpall->{name} = 'pg_dumpall';
- $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\keywords.c');
- $pgdumpall->AddFile('src\backend\parser\kwlookup.c');
+ $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/keywords.c');
+ $pgdumpall->AddFile('src/backend/parser/kwlookup.c');
$pgdumpall->AddLibrary('ws2_32.lib');
my $pgrestore = AddSimpleFrontend('pg_dump', 1);
$pgrestore->{name} = 'pg_restore';
- $pgrestore->AddIncludeDir('src\backend');
- $pgrestore->AddFile('src\bin\pg_dump\pg_restore.c');
- $pgrestore->AddFile('src\bin\pg_dump\keywords.c');
- $pgrestore->AddFile('src\backend\parser\kwlookup.c');
+ $pgrestore->AddIncludeDir('src/backend');
+ $pgrestore->AddFile('src/bin/pg_dump/pg_restore.c');
+ $pgrestore->AddFile('src/bin/pg_dump/keywords.c');
+ $pgrestore->AddFile('src/backend/parser/kwlookup.c');
$pgrestore->AddLibrary('ws2_32.lib');
my $zic = $solution->AddProject('zic', 'exe', 'utils');
- $zic->AddFiles('src\timezone', 'zic.c', 'ialloc.c', 'scheck.c',
+ $zic->AddFiles('src/timezone', 'zic.c', 'ialloc.c', 'scheck.c',
'localtime.c');
- $zic->AddDirResourceFile('src\timezone');
+ $zic->AddDirResourceFile('src/timezone');
$zic->AddReference($libpgcommon, $libpgport);
if ($solution->{options}->{xml})
{
$contrib_extraincludes->{'pgxml'} = [
- $solution->{options}->{xml} . '\include',
- $solution->{options}->{xslt} . '\include',
- $solution->{options}->{iconv} . '\include' ];
+ $solution->{options}->{xml} . '/include',
+ $solution->{options}->{xslt} . '/include',
+ $solution->{options}->{iconv} . '/include' ];
$contrib_extralibs->{'pgxml'} = [
- $solution->{options}->{xml} . '\lib\libxml2.lib',
- $solution->{options}->{xslt} . '\lib\libxslt.lib' ];
+ $solution->{options}->{xml} . '/lib/libxml2.lib',
+ $solution->{options}->{xslt} . '/lib/libxslt.lib' ];
}
else
{
@@ -485,9 +485,9 @@ sub mkvcbuild
if ($solution->{options}->{uuid})
{
$contrib_extraincludes->{'uuid-ossp'} =
- [ $solution->{options}->{uuid} . '\include' ];
+ [ $solution->{options}->{uuid} . '/include' ];
$contrib_extralibs->{'uuid-ossp'} =
- [ $solution->{options}->{uuid} . '\lib\uuid.lib' ];
+ [ $solution->{options}->{uuid} . '/lib/uuid.lib' ];
}
else
{
@@ -497,7 +497,7 @@ sub mkvcbuild
# AddProject() does not recognize the constructs used to populate OBJS in
# the pgcrypto Makefile, so it will discover no files.
my $pgcrypto =
- $solution->AddProject('pgcrypto', 'dll', 'crypto', 'contrib\\pgcrypto');
+ $solution->AddProject('pgcrypto', 'dll', 'crypto', 'contrib/pgcrypto');
$pgcrypto->AddFiles(
'contrib\pgcrypto', 'pgcrypto.c',
'px.c', 'px-hmac.c',
@@ -513,13 +513,13 @@ sub mkvcbuild
'pgp-pgsql.c');
if ($solution->{options}->{openssl})
{
- $pgcrypto->AddFiles('contrib\pgcrypto', 'openssl.c',
+ $pgcrypto->AddFiles('contrib/pgcrypto', 'openssl.c',
'pgp-mpi-openssl.c');
}
else
{
$pgcrypto->AddFiles(
- 'contrib\pgcrypto', 'md5.c',
+ 'contrib/pgcrypto', 'md5.c',
'sha1.c', 'sha2.c',
'internal.c', 'internal-sha2.c',
'blf.c', 'rijndael.c',
@@ -543,22 +543,22 @@ sub mkvcbuild
closedir($D);
$mf =
- Project::read_file('src\backend\utils\mb\conversion_procs\Makefile');
+ Project::read_file('src/backend/utils/mb/conversion_procs/Makefile');
$mf =~ s{\\\r?\n}{}g;
$mf =~ m{SUBDIRS\s*=\s*(.*)$}m
|| die 'Could not match in conversion makefile' . "\n";
foreach my $sub (split /\s+/, $1)
{
- my $dir = 'src\backend\utils\mb\conversion_procs\\' . $sub;
+ my $dir = 'src/backend/utils/mb/conversion_procs/' . $sub;
my $p = $solution->AddProject($sub, 'dll', 'conversion procs', $dir);
- $p->AddFile("$dir\\$sub.c"); # implicit source file
+ $p->AddFile("$dir/$sub.c"); # implicit source file
$p->AddReference($postgres);
}
- $mf = Project::read_file('src\bin\scripts\Makefile');
+ $mf = Project::read_file('src/bin/scripts/Makefile');
$mf =~ s{\\\r?\n}{}g;
$mf =~ m{PROGRAMS\s*=\s*(.*)$}m
- || die 'Could not match in bin\scripts\Makefile' . "\n";
+ || die 'Could not match in bin/scripts/Makefile' . "\n";
foreach my $prg (split /\s+/, $1)
{
my $proj = $solution->AddProject($prg, 'exe', 'bin');
@@ -570,47 +570,47 @@ sub mkvcbuild
$f =~ s/\.o$/\.c/;
if ($f eq 'keywords.c')
{
- $proj->AddFile('src\bin\pg_dump\keywords.c');
+ $proj->AddFile('src/bin/pg_dump/keywords.c');
}
elsif ($f eq 'kwlookup.c')
{
- $proj->AddFile('src\backend\parser\kwlookup.c');
+ $proj->AddFile('src/backend/parser/kwlookup.c');
}
elsif ($f eq 'dumputils.c')
{
- $proj->AddFile('src\bin\pg_dump\dumputils.c');
+ $proj->AddFile('src/bin/pg_dump/dumputils.c');
}
elsif ($f =~ /print\.c$/)
{ # Also catches mbprint.c
- $proj->AddFile('src\bin\psql\\' . $f);
+ $proj->AddFile('src/bin/psql/' . $f);
}
elsif ($f =~ /\.c$/)
{
- $proj->AddFile('src\bin\scripts\\' . $f);
+ $proj->AddFile('src/bin/scripts/' . $f);
}
}
- $proj->AddIncludeDir('src\interfaces\libpq');
- $proj->AddIncludeDir('src\bin\pg_dump');
- $proj->AddIncludeDir('src\bin\psql');
+ $proj->AddIncludeDir('src/interfaces/libpq');
+ $proj->AddIncludeDir('src/bin/pg_dump');
+ $proj->AddIncludeDir('src/bin/psql');
$proj->AddReference($libpq, $libpgcommon, $libpgport);
- $proj->AddDirResourceFile('src\bin\scripts');
+ $proj->AddDirResourceFile('src/bin/scripts');
$proj->AddLibrary('ws2_32.lib');
}
# Regression DLL and EXE
my $regress = $solution->AddProject('regress', 'dll', 'misc');
- $regress->AddFile('src\test\regress\regress.c');
- $regress->AddDirResourceFile('src\test\regress');
+ $regress->AddFile('src/test/regress/regress.c');
+ $regress->AddDirResourceFile('src/test/regress');
$regress->AddReference($postgres);
my $pgregress = $solution->AddProject('pg_regress', 'exe', 'misc');
- $pgregress->AddFile('src\test\regress\pg_regress.c');
- $pgregress->AddFile('src\test\regress\pg_regress_main.c');
- $pgregress->AddIncludeDir('src\port');
+ $pgregress->AddFile('src/test/regress/pg_regress.c');
+ $pgregress->AddFile('src/test/regress/pg_regress_main.c');
+ $pgregress->AddIncludeDir('src/port');
$pgregress->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
$pgregress->AddDefine('FRONTEND');
$pgregress->AddLibrary('ws2_32.lib');
- $pgregress->AddDirResourceFile('src\test\regress');
+ $pgregress->AddDirResourceFile('src/test/regress');
$pgregress->AddReference($libpgcommon, $libpgport);
# fix up pg_xlogdump once it's been set up
@@ -623,7 +623,7 @@ sub mkvcbuild
{
my $bf = basename $xf;
copy($xf, "contrib/pg_xlogdump/$bf");
- $pg_xlogdump->AddFile("contrib\\pg_xlogdump\\$bf");
+ $pg_xlogdump->AddFile("contrib/pg_xlogdump/$bf");
}
copy(
'src/backend/access/transam/xlogreader.c',
@@ -644,11 +644,11 @@ sub AddSimpleFrontend
my $uselibpq = shift;
my $p = $solution->AddProject($n, 'exe', 'bin');
- $p->AddDir('src\bin\\' . $n);
+ $p->AddDir('src/bin/' . $n);
$p->AddReference($libpgcommon, $libpgport);
if ($uselibpq)
{
- $p->AddIncludeDir('src\interfaces\libpq');
+ $p->AddIncludeDir('src/interfaces/libpq');
$p->AddReference($libpq);
}
return $p;
@@ -658,13 +658,13 @@ sub AddSimpleFrontend
sub AddContrib
{
my $n = shift;
- my $mf = Project::read_file('contrib\\' . $n . '\Makefile');
+ my $mf = Project::read_file('contrib/' . $n . '/Makefile');
if ($mf =~ /^MODULE_big\s*=\s*(.*)$/mg)
{
my $dn = $1;
my $proj =
- $solution->AddProject($dn, 'dll', 'contrib', 'contrib\\' . $n);
+ $solution->AddProject($dn, 'dll', 'contrib', 'contrib/' . $n);
$proj->AddReference($postgres);
AdjustContribProj($proj);
}
@@ -673,8 +673,8 @@ sub AddContrib
foreach my $mod (split /\s+/, $1)
{
my $proj =
- $solution->AddProject($mod, 'dll', 'contrib', 'contrib\\' . $n);
- $proj->AddFile('contrib\\' . $n . '\\' . $mod . '.c');
+ $solution->AddProject($mod, 'dll', 'contrib', 'contrib/' . $n);
+ $proj->AddFile('contrib/' . $n . '/' . $mod . '.c');
$proj->AddReference($postgres);
AdjustContribProj($proj);
}
@@ -682,7 +682,7 @@ sub AddContrib
elsif ($mf =~ /^PROGRAM\s*=\s*(.*)$/mg)
{
my $proj =
- $solution->AddProject($1, 'exe', 'contrib', 'contrib\\' . $n);
+ $solution->AddProject($1, 'exe', 'contrib', 'contrib/' . $n);
AdjustContribProj($proj);
}
else
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm
index 6d84d89..56a88e8 100644
--- a/src/tools/msvc/Project.pm
+++ b/src/tools/msvc/Project.pm
@@ -52,20 +52,20 @@ sub AddFiles
while (my $f = shift)
{
- $self->{files}->{ $dir . "\\" . $f } = 1;
+ $self->{files}->{ $dir . "/" . $f } = 1;
}
}
sub ReplaceFile
{
my ($self, $filename, $newname) = @_;
- my $re = "\\\\$filename\$";
+ my $re = "\\/$filename\$";
foreach my $file (keys %{ $self->{files} })
{
# Match complete filename
- if ($filename =~ /\\/)
+ if ($filename =~ m!/!)
{
if ($file eq $filename)
{
@@ -77,7 +77,7 @@ sub ReplaceFile
elsif ($file =~ m/($re)/)
{
delete $self->{files}{$file};
- $self->{files}{"$newname\\$filename"} = 1;
+ $self->{files}{"$newname/$filename"} = 1;
return;
}
}
@@ -105,7 +105,7 @@ sub RelocateFiles
if ($r)
{
$self->RemoveFile($f);
- $self->AddFile($targetdir . '\\' . basename($f));
+ $self->AddFile($targetdir . '/' . basename($f));
}
}
}
@@ -118,7 +118,7 @@ sub AddReference
{
push @{ $self->{references} }, $ref;
$self->AddLibrary(
- "__CFGNAME__\\" . $ref->{name} . "\\" . $ref->{name} . ".lib");
+ "__CFGNAME__/" . $ref->{name} . "/" . $ref->{name} . ".lib");
}
}
@@ -169,8 +169,8 @@ sub FullExportDLL
my ($self, $libname) = @_;
$self->{builddef} = 1;
- $self->{def} = ".\\__CFGNAME__\\$self->{name}\\$self->{name}.def";
- $self->{implib} = "__CFGNAME__\\$self->{name}\\$libname";
+ $self->{def} = "./__CFGNAME__/$self->{name}/$self->{name}.def";
+ $self->{implib} = "__CFGNAME__/$self->{name}/$libname";
}
sub UseDef
@@ -194,9 +194,9 @@ sub AddDir
if $subdir eq "\$(top_builddir)/src/timezone"
; #special case for non-standard include
next
- if $reldir . "\\" . $subdir eq "src\\backend\\port\\darwin";
+ if $reldir . "/" . $subdir eq "src/backend/port/darwin";
- $self->AddDir($reldir . "\\" . $subdir);
+ $self->AddDir($reldir . "/" . $subdir);
}
}
while ($mf =~ m{^(?:EXTRA_)?OBJS[^=]*=\s*(.*)$}m)
@@ -243,13 +243,11 @@ sub AddDir
if ($f =~ /^\$\(top_builddir\)\/(.*)/)
{
$f = $1;
- $f =~ s/\//\\/g;
$self->{files}->{$f} = 1;
}
else
{
- $f =~ s/\//\\/g;
- $self->{files}->{"$reldir\\$f"} = 1;
+ $self->{files}->{"$reldir/$f"} = 1;
}
}
$mf =~ s{OBJS[^=]*=\s*(.*)$}{}m;
@@ -264,7 +262,6 @@ sub AddDir
my $match = $1;
my $top = $2;
my $target = $3;
- $target =~ s{/}{\\}g;
my @pieces = split /\s+/, $match;
foreach my $fn (@pieces)
{
@@ -274,7 +271,7 @@ sub AddDir
}
elsif ($top eq "(backend_src)")
{
- eval { $self->ReplaceFile($fn, "src\\backend\\$target") };
+ eval { $self->ReplaceFile($fn, "src/backend/$target") };
}
else
{
@@ -310,12 +307,12 @@ sub AddResourceFile
localtime(time);
my $d = sprintf("%02d%03d", ($year - 100), $yday);
- if (Solution::IsNewer("$dir\\win32ver.rc", 'src\port\win32ver.rc'))
+ if (Solution::IsNewer("$dir/win32ver.rc", 'src/port/win32ver.rc'))
{
print "Generating win32ver.rc for $dir\n";
- open(I, 'src\port\win32ver.rc')
+ open(I, 'src/port/win32ver.rc')
|| confess "Could not open win32ver.rc";
- open(O, ">$dir\\win32ver.rc")
+ open(O, ">$dir/win32ver.rc")
|| confess "Could not write win32ver.rc";
my $icostr = $ico ? "IDI_ICON ICON \"src/port/$ico.ico\"" : "";
while (<I>)
@@ -332,7 +329,7 @@ sub AddResourceFile
}
close(O);
close(I);
- $self->AddFile("$dir\\win32ver.rc");
+ $self->AddFile("$dir/win32ver.rc");
}
sub DisableLinkerWarnings
@@ -415,9 +412,9 @@ sub read_makefile
my $t = $/;
undef $/;
- open($F, "$reldir\\GNUmakefile")
- || open($F, "$reldir\\Makefile")
- || croak "Could not open $reldir\\Makefile\n";
+ open($F, "$reldir/GNUmakefile")
+ || open($F, "$reldir/Makefile")
+ || confess "Could not open $reldir/Makefile\n";
my $txt = <$F>;
close($F);
$/ = $t;
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 9bd864c..e8f2355 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -90,15 +90,15 @@ sub DeterminePlatform
sub IsNewer
{
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');
+ 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');
+ if (-f 'src/tools/msvc/config_default.pl')
+ && IsNewer($newfile, 'src/tools/msvc/config_default.pl');
}
return 1 if (!(-e $newfile));
my @nstat = stat($newfile);
@@ -147,20 +147,20 @@ sub GenerateFiles
if ($self->{strver} eq '' || $self->{numver} eq '');
if (IsNewer(
- "src\\include\\pg_config_os.h", "src\\include\\port\\win32.h"))
+ "src/include/pg_config_os.h", "src/include/port/win32.h"))
{
print "Copying pg_config_os.h...\n";
- copyFile("src\\include\\port\\win32.h",
- "src\\include\\pg_config_os.h");
+ copyFile("src/include/port/win32.h",
+ "src/include/pg_config_os.h");
}
if (IsNewer(
- "src\\include\\pg_config.h", "src\\include\\pg_config.h.win32"))
+ "src/include/pg_config.h", "src/include/pg_config.h.win32"))
{
print "Generating pg_config.h...\n";
- open(I, "src\\include\\pg_config.h.win32")
+ open(I, "src/include/pg_config.h.win32")
|| confess "Could not open pg_config.h.win32\n";
- open(O, ">src\\include\\pg_config.h")
+ open(O, ">src/include/pg_config.h")
|| confess "Could not write to pg_config.h\n";
my $extraver = $self->{options}->{extraver};
$extraver = '' unless defined $extraver;
@@ -248,111 +248,111 @@ sub GenerateFiles
}
if (IsNewer(
- "src\\include\\pg_config_ext.h",
- "src\\include\\pg_config_ext.h.win32"))
+ "src/include/pg_config_ext.h",
+ "src/include/pg_config_ext.h.win32"))
{
print "Copying pg_config_ext.h...\n";
copyFile(
- "src\\include\\pg_config_ext.h.win32",
- "src\\include\\pg_config_ext.h");
+ "src/include/pg_config_ext.h.win32",
+ "src/include/pg_config_ext.h");
}
$self->GenerateDefFile(
- "src\\interfaces\\libpq\\libpqdll.def",
- "src\\interfaces\\libpq\\exports.txt",
+ "src/interfaces/libpq/libpqdll.def",
+ "src/interfaces/libpq/exports.txt",
"LIBPQ");
$self->GenerateDefFile(
- "src\\interfaces\\ecpg\\ecpglib\\ecpglib.def",
- "src\\interfaces\\ecpg\\ecpglib\\exports.txt",
+ "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",
+ "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",
+ "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'))
+ 'src/backend/utils/fmgrtab.c', 'src/include/catalog/pg_proc.h'))
{
print "Generating fmgrtab.c and fmgroids.h...\n";
- chdir('src\backend\utils');
+ chdir('src/backend/utils');
system(
"perl -I ../catalog Gen_fmgrtab.pl ../../../src/include/catalog/pg_proc.h");
- chdir('..\..\..');
+ chdir('../../..');
}
if (IsNewer(
- 'src\include\utils\fmgroids.h',
- 'src\backend\utils\fmgroids.h'))
+ 'src/include/utils/fmgroids.h',
+ 'src/backend/utils/fmgroids.h'))
{
- copyFile('src\backend\utils\fmgroids.h',
- 'src\include\utils\fmgroids.h');
+ copyFile('src/backend/utils/fmgroids.h',
+ 'src/include/utils/fmgroids.h');
}
- 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";
system(
-'psed -f src\backend\utils\Gen_dummy_probes.sed src\backend\utils\probes.d > src\include\utils\probes.h'
+'psed -f src/backend/utils/Gen_dummy_probes.sed src/backend/utils/probes.d > src/include/utils/probes.h'
);
}
if ($self->{options}->{python}
&& IsNewer(
- 'src\pl\plpython\spiexceptions.h',
- 'src\include\backend\errcodes.txt'))
+ 'src/pl/plpython/spiexceptions.h',
+ 'src/include/backend/errcodes.txt'))
{
print "Generating spiexceptions.h...\n";
system(
-'perl src\pl\plpython\generate-spiexceptions.pl src\backend\utils\errcodes.txt > src\pl\plpython\spiexceptions.h'
+'perl src/pl/plpython/generate-spiexceptions.pl src/backend/utils/errcodes.txt > src/pl/plpython/spiexceptions.h'
);
}
if (IsNewer(
- 'src\include\utils\errcodes.h',
- 'src\backend\utils\errcodes.txt'))
+ 'src/include/utils/errcodes.h',
+ 'src/backend/utils/errcodes.txt'))
{
print "Generating errcodes.h...\n";
system(
-'perl src\backend\utils\generate-errcodes.pl src\backend\utils\errcodes.txt > src\backend\utils\errcodes.h'
+'perl src/backend/utils/generate-errcodes.pl src/backend/utils/errcodes.txt > src/backend/utils/errcodes.h'
);
- copyFile('src\backend\utils\errcodes.h',
- 'src\include\utils\errcodes.h');
+ copyFile('src/backend/utils/errcodes.h',
+ 'src/include/utils/errcodes.h');
}
if (IsNewer(
- 'src\pl\plpgsql\src\plerrcodes.h',
- 'src\backend\utils\errcodes.txt'))
+ 'src/pl/plpgsql/src/plerrcodes.h',
+ 'src/backend/utils/errcodes.txt'))
{
print "Generating plerrcodes.h...\n";
system(
-'perl src\pl\plpgsql\src\generate-plerrcodes.pl src\backend\utils\errcodes.txt > src\pl\plpgsql\src\plerrcodes.h'
+'perl src/pl/plpgsql/src/generate-plerrcodes.pl src/backend/utils/errcodes.txt > src/pl/plpgsql/src/plerrcodes.h'
);
}
if (IsNewer(
- 'src\backend\utils\sort\qsort_tuple.c',
- 'src\backend\utils\sort\gen_qsort_tuple.pl'))
+ 'src/backend/utils/sort/qsort_tuple.c',
+ 'src/backend/utils/sort/gen_qsort_tuple.pl'))
{
print "Generating qsort_tuple.c...\n";
system(
-'perl src\backend\utils\sort\gen_qsort_tuple.pl > src\backend\utils\sort\qsort_tuple.c'
+'perl src/backend/utils/sort/gen_qsort_tuple.pl > src/backend/utils/sort/qsort_tuple.c'
);
}
if (IsNewer(
- 'src\interfaces\libpq\libpq.rc',
- 'src\interfaces\libpq\libpq.rc.in'))
+ 'src/interfaces/libpq/libpq.rc',
+ 'src/interfaces/libpq/libpq.rc.in'))
{
print "Generating libpq.rc...\n";
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
localtime(time);
my $d = ($year - 100) . "$yday";
- open(I, '<', 'src\interfaces\libpq\libpq.rc.in')
+ open(I, '<', 'src/interfaces/libpq/libpq.rc.in')
|| confess "Could not open libpq.rc.in";
- open(O, '>', 'src\interfaces\libpq\libpq.rc')
+ open(O, '>', 'src/interfaces/libpq/libpq.rc')
|| confess "Could not open libpq.rc";
while (<I>)
{
@@ -363,30 +363,30 @@ sub GenerateFiles
close(O);
}
- if (IsNewer('src\bin\psql\sql_help.h', 'src\bin\psql\create_help.pl'))
+ if (IsNewer('src/bin/psql/sql_help.h', 'src/bin/psql/create_help.pl'))
{
print "Generating sql_help.h...\n";
- chdir('src\bin\psql');
+ chdir('src/bin/psql');
system("perl create_help.pl ../../../doc/src/sgml/ref sql_help");
- chdir('..\..\..');
+ chdir('../../..');
}
if (IsNewer(
- 'src\interfaces\ecpg\preproc\preproc.y',
- 'src\backend\parser\gram.y'))
+ 'src/interfaces/ecpg/preproc/preproc.y',
+ 'src/backend/parser/gram.y'))
{
print "Generating preproc.y...\n";
- chdir('src\interfaces\ecpg\preproc');
- system('perl parse.pl < ..\..\..\backend\parser\gram.y > preproc.y');
- chdir('..\..\..\..');
+ chdir('src/interfaces/ecpg/preproc');
+ system('perl parse.pl < ../../../backend/parser/gram.y > preproc.y');
+ chdir('../../../..');
}
if (IsNewer(
- 'src\interfaces\ecpg\include\ecpg_config.h',
- 'src\interfaces\ecpg\include\ecpg_config.h.in'))
+ 'src/interfaces/ecpg/include/ecpg_config.h',
+ 'src/interfaces/ecpg/include/ecpg_config.h.in'))
{
print "Generating ecpg_config.h...\n";
- open(O, '>', 'src\interfaces\ecpg\include\ecpg_config.h')
+ open(O, '>', 'src/interfaces/ecpg/include/ecpg_config.h')
|| confess "Could not open ecpg_config.h";
print O <<EOF;
#if (_MSC_VER > 1200)
@@ -399,10 +399,10 @@ EOF
close(O);
}
- unless (-f "src\\port\\pg_config_paths.h")
+ unless (-f "src/port/pg_config_paths.h")
{
print "Generating pg_config_paths.h...\n";
- open(O, '>', 'src\port\pg_config_paths.h')
+ open(O, '>', 'src/port/pg_config_paths.h')
|| confess "Could not open pg_config_paths.h";
print O <<EOF;
#define PGBINDIR "/bin"
@@ -421,7 +421,7 @@ EOF
close(O);
}
- my $mf = Project::read_file('src\backend\catalog\Makefile');
+ my $mf = Project::read_file('src/backend/catalog/Makefile');
$mf =~ s{\\\r?\n}{}g;
$mf =~ /^POSTGRES_BKI_SRCS\s*:?=[^,]+,(.*)\)$/gm
|| croak "Could not find POSTGRES_BKI_SRCS in Makefile\n";
@@ -434,15 +434,15 @@ EOF
"src/include/catalog/$bki"))
{
print "Generating postgres.bki and schemapg.h...\n";
- chdir('src\backend\catalog');
+ chdir('src/backend/catalog');
my $bki_srcs = join(' ../../../src/include/catalog/', @allbki);
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');
+ 'src/backend/catalog/schemapg.h',
+ 'src/include/catalog/schemapg.h');
last;
}
}
--
2.3.0
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers