]> granicus.if.org Git - postgresql/commitdiff
Backpatch "Use the preferred version of xsubpp."
authorAndrew Dunstan <andrew@dunslane.net>
Mon, 28 Nov 2011 12:45:48 +0000 (07:45 -0500)
committerAndrew Dunstan <andrew@dunslane.net>
Mon, 28 Nov 2011 12:45:48 +0000 (07:45 -0500)
As requested this is backpatched all the way to release 8.2.

src/pl/plperl/GNUmakefile
src/tools/msvc/Mkvcbuild.pm

index ec9c6b4ff7d2ac6bcd347937a13e4da22125f171..de1ac11407be561d572faefaf35cb586c095dc07 100644 (file)
@@ -50,6 +50,9 @@ endif
 # where to find psql for running the tests
 PSQLDIR = $(bindir)
 
+# where to find xsubpp for building XS.
+XSUBPPDIR = $(shell $(PERL) -e 'use List::Util qw(first); print first { -r "$$_/ExtUtils/xsubpp" } @INC')
+
 include $(top_srcdir)/src/Makefile.shlib
 
 
@@ -62,7 +65,7 @@ plperl_opmask.h: plperl_opmask.pl
 
 
 SPI.c: SPI.xs
-       $(PERL) $(perl_privlibexp)/ExtUtils/xsubpp -typemap $(perl_privlibexp)/ExtUtils/typemap $< >$@
+       $(PERL) $(XSUBPPDIR)/ExtUtils/xsubpp -typemap $(perl_privlibexp)/ExtUtils/typemap $< >$@
 
 install: all installdirs install-lib
 
index 870bfeef0708aec57cbab2a234d872a2d968379b..92a838d76a8cc285f2545a8d986de0b59631b860 100644 (file)
@@ -12,6 +12,8 @@ use warnings;
 use Project;
 use Solution;
 use Cwd;
+use Config;
+use List::Util qw(first);
 
 use Exporter;
 our (@ISA, @EXPORT_OK);
@@ -91,11 +93,11 @@ sub mkvcbuild
         $plperl->AddDefine('PLPERL_HAVE_UID_GID');
         if (Solution::IsNewer('src\pl\plperl\SPI.c','src\pl\plperl\SPI.xs'))
         {
+                       my $xsubppdir = first { -e "$_\\ExtUtils\\xsubpp" } @INC;
             print 'Building src\pl\plperl\SPI.c...' . "\n";
             system( $solution->{options}->{perl}
                   . '/bin/perl '
-                  . $solution->{options}->{perl}
-                  . '/lib/ExtUtils/xsubpp -typemap '
+                                 . "$xsubppdir/ExtUtils/xsubpp -typemap "
                   . $solution->{options}->{perl}
                   . '/lib/ExtUtils/typemap src\pl\plperl\SPI.xs >src\pl\plperl\SPI.c');
             if ((!(-f 'src\pl\plperl\SPI.c')) || -z 'src\pl\plperl\SPI.c')