]> granicus.if.org Git - postgresql/commitdiff
Use the preferred version of xsubpp, not necessarily the one that came with the
authorAndrew Dunstan <andrew@dunslane.net>
Sat, 26 Nov 2011 20:24:57 +0000 (15:24 -0500)
committerAndrew Dunstan <andrew@dunslane.net>
Sat, 26 Nov 2011 20:24:57 +0000 (15:24 -0500)
distro version of perl.

David Wheeler and Alex Hunsaker.

Backpatch to 9.1 where it applies cleanly. A simple workaround is available for earlier
branches, and further effort doesn't seem warranted.

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

index 58d5f357b4c59e2c3d0efbd1ecf6794c02deb2e4..55f48cd401a15e05c02feec089e7cd8fe9619c41 100644 (file)
@@ -55,6 +55,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
 
 plperl.o: perlchunks.h plperl_opmask.h plperl_helpers.h
@@ -71,11 +74,11 @@ all: all-lib
 
 SPI.c: SPI.xs
        @if [ x"$(perl_privlibexp)" = x"" ]; then echo "configure switch --with-perl was not specified."; exit 1; fi
-       $(PERL) $(perl_privlibexp)/ExtUtils/xsubpp -typemap $(perl_privlibexp)/ExtUtils/typemap $< >$@
+       $(PERL) $(XSUBPPDIR)/ExtUtils/xsubpp -typemap $(perl_privlibexp)/ExtUtils/typemap $< >$@
 
 Util.c: Util.xs
        @if [ x"$(perl_privlibexp)" = x"" ]; then echo "configure switch --with-perl was not specified."; exit 1; fi
-       $(PERL) $(perl_privlibexp)/ExtUtils/xsubpp -typemap $(perl_privlibexp)/ExtUtils/typemap $< >$@
+       $(PERL) $(XSUBPPDIR)/ExtUtils/xsubpp -typemap $(perl_privlibexp)/ExtUtils/typemap $< >$@
 
 
 install: all install-lib install-data
index 61656e6d6eebe4a41a4ef7f1c656be6768b0275f..c80752a86181befc1aa5807df2381a48387c488c 100644 (file)
@@ -13,6 +13,8 @@ use Project;
 use Solution;
 use Cwd;
 use File::Copy;
+use Config;
+use List::Util qw(first);
 
 use Exporter;
 our (@ISA, @EXPORT_OK);
@@ -106,11 +108,12 @@ sub mkvcbuild
             (my $xsc = $xs) =~ s/\.xs/.c/;
             if (Solution::IsNewer("$plperlsrc$xsc","$plperlsrc$xs"))
             {
+                my $xsubppdir = first { -e "$_\\ExtUtils\\xsubpp.BAT" } @INC;
                 print "Building $plperlsrc$xsc...\n";
                 system( $solution->{options}->{perl}
                       . '/bin/perl '
                       . $solution->{options}->{perl}
-                      . '/lib/ExtUtils/xsubpp -typemap '
+                      . "$xsubppdir/ExtUtils/xsubpp -typemap "
                       . $solution->{options}->{perl}
                       . '/lib/ExtUtils/typemap '
                       . "$plperlsrc$xs "