xsubpp.patch

application/octet-stream

Filename: xsubpp.patch
Type: application/octet-stream
Part: 0
Message: Patch: Perl xsubpp

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
File+
src/pl/plperl/GNUmakefile 7 4
src/tools/msvc/Mkvcbuild.pm 5 1
diff --git a/src/pl/plperl/GNUmakefile b/src/pl/plperl/GNUmakefile
index aa44827..32e9256 100644
--- a/src/pl/plperl/GNUmakefile
+++ b/src/pl/plperl/GNUmakefile
@@ -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) -MConfig -e 'use List::Util qw(first); print first { -x "$$_/xsubpp" } @Config{qw(installsitebin installvendorbin installbin)}')
+
 include $(top_srcdir)/src/Makefile.shlib
 
 plperl.o: perlchunks.h plperl_opmask.h
@@ -70,12 +73,12 @@ perlchunks.h: $(PERLCHUNKS)
 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 $< >$@
+	@if [ x"$(XSUBPPDIR)" = x"" ]; then echo "configure switch --with-perl was not specified."; exit 1; fi
+	$(PERL) $(XSUBPPDIR)/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 $< >$@
+	@if [ x"$(XSUBPPDIR)" = x"" ]; then echo "configure switch --with-perl was not specified."; exit 1; fi
+	$(PERL) $(XSUBPPDIR)/xsubpp -typemap $(perl_privlibexp)/ExtUtils/typemap $< >$@
 
 
 install: all install-lib install-data
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 3d71c88..bfe9990 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -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,13 @@ sub mkvcbuild
             (my $xsc = $xs) =~ s/\.xs/.c/;
             if (Solution::IsNewer("$plperlsrc$xsc","$plperlsrc$xs"))
             {
+                my $xsubppdir = first { -e "$_\\xsubpp.BAT" }
+                    @Config{qw(installsitebin installvendorbin installbin)};
                 print "Building $plperlsrc$xsc...\n";
                 system( $solution->{options}->{perl}
                       . '/bin/perl '
                       . $solution->{options}->{perl}
-                      . '/lib/ExtUtils/xsubpp -typemap '
+                      . "$xsubppdir/xsubpp -typemap "
                       . $solution->{options}->{perl}
                       . '/lib/ExtUtils/typemap '
                       . "$plperlsrc$xs "