Build perlchunks.h for plperl on MSVC
authorAndrew Dunstan <[email protected]>
Sat, 9 Jan 2010 14:45:47 +0000 (14:45 +0000)
committerAndrew Dunstan <[email protected]>
Sat, 9 Jan 2010 14:45:47 +0000 (14:45 +0000)
src/tools/msvc/Mkvcbuild.pm

index 9b5d149346116f542a7183bf0d2e174329b73fff..4a73c44ddd0f694a488a0d50ddcf45a56a6d4259 100644 (file)
@@ -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');