]> granicus.if.org Git - postgresql/commitdiff
Build perlchunks.h for plperl on MSVC
authorAndrew Dunstan <andrew@dunslane.net>
Sat, 9 Jan 2010 14:45:47 +0000 (14:45 +0000)
committerAndrew Dunstan <andrew@dunslane.net>
Sat, 9 Jan 2010 14:45:47 +0000 (14:45 +0000)
src/tools/msvc/Mkvcbuild.pm

index 9e7e6cf0066b4befb663f265cfa7c1e2bf9f0512..9ae689ec79ab558672eb6b1f1c48b70892fd09ee 100644 (file)
@@ -3,7 +3,7 @@ package Mkvcbuild;
 #
 # Package that generates build files for msvc build
 #
-# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.44 2009/11/12 00:13:00 tgl Exp $
+# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.45 2010/01/09 14:45:47 adunstan Exp $
 #
 use Carp;
 use Win32;
@@ -11,6 +11,8 @@ use strict;
 use warnings;
 use Project;
 use Solution;
+use Cwd;
+use File::Copy;
 
 use Exporter;
 our (@ISA, @EXPORT_OK);
@@ -103,6 +105,31 @@ sub mkvcbuild
                 die 'Failed to create SPI.c' . "\n";
             }
         }
+        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_ok.pl'))
+        {
+            print 'Building src\pl\plperl\perlchunks.h ...' . "\n";
+            my $basedir = getcwd;
+            chdir 'src\pl\plperl';
+            system( $solution->{options}->{perl}
+                  . '/bin/perl '
+                  . 'text2macro.pl '
+                  . '--strip="^(\#.*|\s*)$$" '
+                  . 'plc_perlboot.pl plc_safe_bad.pl plc_safe_ok.pl '
+                  .    '>perlchunks.htmp');
+            chdir $basedir;
+            if ((!(-f 'src\pl\plperl\perlchunks.htmp')) || -z 'src\pl\plperl\perlchunks.htmp')
+            {
+                unlink('src\pl\plperl\perlchunks.htmp'); # if zero size
+                die 'Failed to create perlchunks.h' . "\n";
+            }
+            else
+            {
+                move('src\pl\plperl\perlchunks.htmp','src\pl\plperl\perlchunks.h');
+            }
+
+        }
         $plperl->AddReference($postgres);
                my @perl_libs = grep {/perl\d+.lib$/ }
                        glob($solution->{options}->{perl} . '\lib\CORE\perl*.lib');