MSVC: Process Makefile line continuations more like "make" does.
authorNoah Misch <noah@leadboat.com>
Mon, 14 Jul 2014 18:07:27 +0000 (14:07 -0400)
committerNoah Misch <noah@leadboat.com>
Mon, 14 Jul 2014 18:07:27 +0000 (14:07 -0400)
Unlike "make" itself, the MSVC build process recognized a continuation
even with whitespace after the backslash.  (Due to a typo, some code
sites accepted the letter "s" instead of whitespace).  Also, it would
consume any number of newlines following a single backslash.  This is
mere cleanup; those behaviors were unlikely to cause bugs.

src/tools/msvc/Install.pm
src/tools/msvc/Mkvcbuild.pm
src/tools/msvc/Project.pm
src/tools/msvc/Solution.pm
src/tools/msvc/vcregress.pl

index ce17f72ec5a5befe3334ff09f95d2c8e271e62e9..eba9aa08f1b8a32a1e0490c3dd1f20fe78dfcaf1 100644 (file)
@@ -307,7 +307,7 @@ sub GenerateConversionScript
 
    print "Generating conversion proc script...";
    my $mf = read_file('src/backend/utils/mb/conversion_procs/Makefile');
-   $mf =~ s{\\\s*[\r\n]+}{}mg;
+   $mf =~ s{\\\r?\n}{}g;
    $mf =~ /^CONVERSIONS\s*=\s*(.*)$/m
      || die "Could not find CONVERSIONS line in conversions Makefile\n";
    my @pieces = split /\s+/, $1;
@@ -341,7 +341,7 @@ sub GenerateTimezoneFiles
    my $target = shift;
    my $conf   = shift;
    my $mf     = read_file("src/timezone/Makefile");
-   $mf =~ s{\\\s*[\r\n]+}{}mg;
+   $mf =~ s{\\\r?\n}{}g;
    $mf =~ /^TZDATA\s*:?=\s*(.*)$/m
      || die "Could not find TZDATA row in timezone makefile\n";
    my @tzfiles = split /\s+/, $1;
@@ -360,7 +360,7 @@ sub GenerateTsearchFiles
    my $F;
    my $tmpl = read_file('src/backend/snowball/snowball.sql.in');
    my $mf   = read_file('src/backend/snowball/Makefile');
-   $mf =~ s{\\\s*[\r\n]+}{}mg;
+   $mf =~ s{\\\r?\n}{}g;
    $mf =~ /^LANGUAGES\s*=\s*(.*)$/m
      || die "Could not find LANGUAGES line in snowball Makefile\n";
    my @pieces = split /\s+/, $1;
@@ -415,7 +415,7 @@ sub CopyContribFiles
        next if ($d eq "sepgsql");
 
        my $mf = read_file("contrib/$d/Makefile");
-       $mf =~ s{\\s*[\r\n]+}{}mg;
+       $mf =~ s{\\\r?\n}{}g;
 
        # Note: we currently don't support setting MODULEDIR in the makefile
        my $moduledir = 'contrib';
@@ -587,7 +587,7 @@ qq{xcopy /s /i /q /r /y src\\include\\$d\\*.h "$ctarget\\include\\server\\$d\\"}
    closedir($D);
 
    my $mf = read_file('src/interfaces/ecpg/include/Makefile');
-   $mf =~ s{\\s*[\r\n]+}{}mg;
+   $mf =~ s{\\\r?\n}{}g;
    $mf =~ /^ecpg_headers\s*=\s*(.*)$/m
      || croak "Could not find ecpg_headers line\n";
    CopyFiles(
index 71450f47739c405106686d54f974a0b0c57b8d50..d3220696c077e9ae17c953c7e1bfe7dba0939dfa 100644 (file)
@@ -524,7 +524,7 @@ sub mkvcbuild
 
    $mf =
      Project::read_file('src\backend\utils\mb\conversion_procs\Makefile');
-   $mf =~ s{\\s*[\r\n]+}{}mg;
+   $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)
@@ -536,7 +536,7 @@ sub mkvcbuild
    }
 
    $mf = Project::read_file('src\bin\scripts\Makefile');
-   $mf =~ s{\\s*[\r\n]+}{}mg;
+   $mf =~ s{\\\r?\n}{}g;
    $mf =~ m{PROGRAMS\s*=\s*(.*)$}m
      || die 'Could not match in bin\scripts\Makefile' . "\n";
    foreach my $prg (split /\s+/, $1)
@@ -674,7 +674,7 @@ sub GenerateContribSqlFiles
 {
    my $n  = shift;
    my $mf = shift;
-   $mf =~ s{\\\s*[\r\n]+}{}mg;
+   $mf =~ s{\\\r?\n}{}g;
    if ($mf =~ /^DATA_built\s*=\s*(.*)$/mg)
    {
        my $l = $1;
index 9ca5b1f13ad39a496b20a5d3cf9e776e3e92bbd9..f343b2b9b8c4319151c88a9143de8fefd4a83169 100644 (file)
@@ -193,7 +193,7 @@ sub AddDir
    my $mf = <$MF>;
    close($MF);
 
-   $mf =~ s{\\\s*[\r\n]+}{}mg;
+   $mf =~ s{\\\r?\n}{}g;
    if ($mf =~ m{^(?:SUB)?DIRS[^=]*=\s*(.*)$}mg)
    {
        foreach my $subdir (split /\s+/, $1)
index 89e4b07c801d499da10655eb35259d27be34db0f..e49c3f4275f025769d0d1139b0463a7c1c5d7e66 100644 (file)
@@ -422,7 +422,7 @@ EOF
    }
 
    my $mf = Project::read_file('src\backend\catalog\Makefile');
-   $mf =~ s{\\s*[\r\n]+}{}mg;
+   $mf =~ s{\\\r?\n}{}g;
    $mf =~ /^POSTGRES_BKI_SRCS\s*:?=[^,]+,(.*)\)$/gm
      || croak "Could not find POSTGRES_BKI_SRCS in Makefile\n";
    my @allbki = split /\s+/, $1;
index 2c8cd50a2f7af8a1e6968266ada4913ed356c6f2..39698ee7ee63d646d446196709c834fefb40394e 100644 (file)
@@ -358,7 +358,7 @@ sub fetchTests
    close($handle);
    my $t = "";
 
-   $m =~ s/\\[\r\n]*//gs;
+   $m =~ s{\\\r?\n}{}g;
    if ($m =~ /^REGRESS\s*=\s*(.*)$/gm)
    {
        $t = $1;